P1095 为什么最后四个点不对?想的就是能用闪现就用,最后几步如果回蓝比走路慢就走路。
P1095 Почему последние четыре пункта неверны? Идея заключается в том, чтобы использовать вспышку, когда это возможно, и пройти последние несколько шагов, если возвращение синего цвета происходит медленнее, чем ходьба.
#include<bits/stdc++.h>
using namespace std;
int m,s,t,nows = 0;
bool walk() {
int nowt = (10 - m) / 4 + 1;
if (nowt * 17 > (s - nows) && (s - nows) <= 60) return true;
return false;
}
int main(){
cin >> m >> s >> t;
for (int i = 1;i <= t;i ++) {
if (nows > s) {
cout << "Yes" << endl << i - 1 << endl;
return 0;
}
if (walk()) {nows += 17;continue;}
else if (m >= 10) {
m -= 10,nows += 60;
} else {
m += 4;
}
if (nows > s) {
cout << "Yes" << endl << i << endl;
return 0;
}
}
cout << "No" << endl << nows << endl;
return 0;
}