上学迟到
向上取整耗时,8:00 前倒推出发时间
正文
// 原题:https://oj.yecheng.tv/p/1351
// 题意:距离 s、速度 v,路上还要 10 分钟垃圾分类,8:00 前到。输出最晚出发时间 HH:MM(补零)。
// 思路:路上耗时向上取整 s/v 分钟,加上 10 分钟;用 8:00(=480 分)减去总耗时,负则加 1440。
// 复杂度:O(1)。
// 易错点:耗时必须向上取整(不能迟到);分钟不足两位要补零。
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int s, v;
cin >> s >> v;
int need = (s + v - 1) / v + 10;
int depart = 480 - need;
if (depart < 0) depart += 1440;
int hh = depart / 60, mm = depart % 60;
cout << setw(2) << setfill('0') << hh << ":" << setw(2) << setfill('0') << mm << endl;
return 0;
}