1 条题解
-
0
【深基2.例12】上学迟到
解题思路
步行所需分钟为向上取整 s/v,再加 10 分钟。用 8:00 对应的 480 分钟减总耗时,若跨到前一天则加 1440,输出时分。
正确性说明
最少整分钟步行时间是 (s+v-1)/v,额外 10 分钟固定。到达时刻减耗时就是最晚出门时刻;按一天取模得到时钟表示。
易错点
需要向上取整;可能前一天出门;小时和分钟都补足两位。
复杂度
时间 O(1),空间 O(1)。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int s, v; cin >> s >> v; int t = (480 - (s + v - 1) / v - 10) % 1440; if (t < 0) t += 1440; cout << setfill('0') << setw(2) << t / 60 << ":" << setw(2) << t % 60 << "\n"; return 0; }
- 1