小明放学(第15次CCF计算机软件能力认证)
link
根据时间求坐标,并对每一个时间对(r+g+y)取模,进行分段处理

#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
int r, y, g; cin >> r >> y >> g;
int n; cin >> n;
int res = 0;
while(n--){
int k, t; cin >> k >> t;
if(k == 0) res += t;
else{
if(k == 1) t = r - t;
else if(k == 2) t = r + y + g - t;
else t = r + g - t;
t += res;
t %= r + y + g;
if(t < r) res += r - t;
else if(t >= r + g) res += r + y + g - t + r;
}
}
cout << res << endl;
return 0;
}

浙公网安备 33010602011771号