AcWing 3268. 小明放学(不开浪浪见祖宗)
原题链接
简单
#include<iostream>
#define int long long
using namespace std;
int n,r,y,g,ans,k,t;
signed main(){
cin>>r>>y>>g>>n;
for(int i=1;i<=n;i++){
int k,t;
cin>>k>>t;
if(k==1){
int temp=(ans+r-t)%(r+g+y);
if(temp>=0&&temp<r) ans+=r-temp;
if(temp>=r&&temp<r+g) ans+=0;
if(temp>=r+g&&temp<r+g+y) ans+=r+g+y-temp+r;
}
else if(k==3){
int temp=(ans+r+g-t)%(r+g+y);
if(temp>=0&&temp<r) ans+=r-temp;
if(temp>=r&&temp<r+g) ans+=0;
if(temp>=r+g&&temp<r+g+y) ans+=r+g+y-temp+r;
}
else if(k==2){
int temp=(ans+r+g+y-t)%(r+g+y);
if(temp>=0&&temp<r) ans+=r-temp;
if(temp>=r&&temp<r+g) ans+=0;
if(temp>=r+g&&temp<r+g+y) ans+=r+g+y-temp+r;
}
else ans+=t;
}
cout<<ans<<endl;
return 0;
}