这道题目大部分人本来十拿九稳会拿100分的,但实际上很多人只拿了60,甚至只有40。
原因是什么呢,因为大部分人,tot都使用了int,导致了溢出,如果改为long long,就能避免这种情况了。
#include<iostream>
using namespace std;
int main(){
int r, y, g;
cin >> r >> y >> g;
int totTime = r + y + g;
int n;
cin >> n;
long long tot = 0;
for(int i = 0; i < n; i++){
int k, t;
cin >> k >> t;
if(k == 0){
tot += t;
continue;
}else if(k == 1){
t = (r - t + tot) % totTime;
}else if(k == 2){
t = (y - t + r + g + tot) % totTime;
}else if(k == 3){
t = (g - t + r + tot) % totTime;
}
if(t <= r){
tot += (r - t);
}else if(t >= r + g){
tot += totTime - t;
tot += r;
}
}
cout << tot << endl;
return 0;
}