t<=106
n<=105
花费时间<=1011,使用int不够,所有要使用long long
#include <iostream>
#include <cstdio>
using namespace std;
int r,y,g;
int n;
void countCurr(long long time,int &k,int &t)
{
if(k==0)
return;
time %= (g+r+y);
while(t <= time)
{
time -= t;
if(k==1){ //当前是红灯
k = 3; //变绿灯
t = g;
}
else if(k==2){ //当前是黄灯
k = 1; //变红灯
t = r;
}
else if(k==3){ //当前是绿灯
k = 2; //变黄灯
t = y;
}
}
t -= time;
}
int main() {
cin>>r>>y>>g;
cin>>n;
int k,t;
long long ans = 0;
for(int i=0;i<n;i++)
{
scanf("%d %d",&k,&t);
countCurr(ans,k,t);
if( k==0 || k==1 )
ans += t;
else if(k==2)
ans += t+r;
}
cout<<ans<<endl;
return 0;
}