小明放学(第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;
}
posted @ 2025-02-28 13:04  awei040519  阅读(12)  评论(0)    收藏  举报