#include<iostream>
using namespace std;
int main(){
int r,y,g;
cin>>r>>y>>g;
int n;
cin>>n;
int a;
int b;
long long total=0;
int all= r+y+g;
for(int i=0;i<n;i++){
cin>>a>>b;
switch(a){
case 0:{
total+=b;
break;
}
case 1:{
b=((r-b)+total)%all;
break;
}
case 2:{
b=((y-b)+r+g+total)%all;
break;
}
case 3:{
b=((g-b)+r+total)%all;
break;
}
}
if(a!=0){
if(b<r) total+=r-b;
else if(b>(r+g)) total+=all-b+r;
}
}
cout<<total;
return 0;
}
因为最后4组数据是不超过1e5,那么总时间的数量级为1e6 * 1e5 = 1e11;需要用long long 来定义total。
经过试验,ccf的系统中int与long为32位,long long 为64位。