@[woyuan](/user/1241841)
是不是没判断前一天???
我一次过也不知道9测试点数据是啥
```cpp
#include<bits/stdc++.h>
using namespace std;
long long n,m,s,t,v;
int main(){
cin>>s>>v;
t=ceil(s*1.0/v)+10;
if(t<=480)
printf("%02d:%02d",(480-t)/60,(480-t)%60);
else
printf("%02d:%02d",(1440+480-t)/60,(1440+480-t)%60);
return 0;
}
```
by CCF___NOI @ 2024-08-28 12:01:43
@[woyuan](/user/1241841)
少用CIN和COUT,太慢
多用PRINTF,很快;
不用endl,用"\0";
by CCF___NOI @ 2024-08-28 12:04:08
``` cpp
#include<bits/stdc++.h>
using namespace std;
int main() {
int s, v, t, h, m;
cin >> s >> v;
t = s / v + 10;
if (s % v != 0)
t += 1;
h = 8 - t / 60;
m = 0 - t % 60;
if (m < 0) {
m += 60;
h--;
}
if (h < 0)
h += 24;
printf("%02d:%02d", h, m);
return 0;
}
by maxwr168 @ 2024-08-28 12:06:06
我好像找到一个hack数据
输入:10000 10000
我过了的程序输出的是07:49
我用你程序是07:48
by mengmeng123456 @ 2024-08-28 12:08:59
@[woyuan](/user/1241841)
你代码没有判断剩下的时间是否大于一天,如果大于一天需要减去一天的时间,所以必须向上取整,不然行走时间就会少,所以没过。(求关)
by maxwr168 @ 2024-08-28 12:11:39
@[woyuan](/user/1241841) 最后的输出可以用
```cpp
printf("%02d:%02d",[变量名],[变量名]);
```
%02d的意思就是输出两位整数,不足两位可以自动补零
by mengmeng123456 @ 2024-08-28 12:19:29
@[woyuan](/user/1241841) 你那个y为什么要减1呢
by mengmeng123456 @ 2024-08-28 12:23:05
我找到你错的地方了,
```cpp
sj=sj+s/u
```
这一行,s/u应该向上取整,因为比如说样例一,yyy的速度是99米每分钟,距离学校100米第一分钟只能走99米,离学校还有1米,这一米我们要按一分钟处理,向上取整可以用函数
```cpp
ceil()
```
还有s和u是整数类型,没有转换的情况下,s/u是自动向下取整,所以要先强制转换成小数形式,可以写成
```cpp
s*1.0/u
```
这样就可以完成强制转换了
by mengmeng123456 @ 2024-08-28 12:36:09
差点忘了,y-1要改成y
by mengmeng123456 @ 2024-08-28 13:11:01
@[mengmeng123456](/user/986624)
改了之后只有9测试点ac
为什么?help me
by woyuan @ 2024-08-29 11:32:12