Link
题目
思路
顺着时间轴推。详见代码。
#include<cstdio>
#include<cmath>
#include<iostream>
using namespace std;
int m,s,t,s1,s2; //s1表示用闪现赶路,s2跑步
int main(){
scanf("%d%d%d",&m,&s,&t);
for(int i = 1; i <= t; ++i){
s2 += 17; //跑步
if(m>=10){ //可以用魔法就用
s1+=60;
s2=max(s2,s1); //贪心
m-=10;
}
else m+=4; //等待,s1走的路程不变
if(s2>=s||s1>=s) { //如果可以到达终点
printf("Yes\n%d",i);
return 0;
}
}
printf("No\n%d",max(s2,s1)); //不然就输出一下可以到达的最大距离
}