import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
long r,g,y,roadNum;
r = s.nextLong();
y = s.nextLong();
g = s.nextLong();
roadNum = s.nextLong();
//ans是已经花费的秒数
long ans=0;
long light,time;
for(long i=0;i<roadNum;i++) {
light = s.nextLong();
time = s.nextLong();
//根据ans(即已经花费的秒数)来计算现在的light和time 还要注意如果是刚上路则不用计算
long yu = ans % (r+g+y);
if(light!=0 && i!=0) {
//灯的变化
boolean flag=true;
while(flag) {
if(yu<time) { //说明不需要变色 直接改变time就行
time = time-yu;
flag=false;
continue;
}
if(light==1) { //如果是红灯 下一次将变为绿灯
light = 3;
//绿灯的剩余时间
if(g+time-yu>0) {
time = g+time-yu;
flag=false;
}
else time = g+time;
}else if(light==2) { //如果是黄灯 下一次将变为红灯
light=1;
//红灯的剩余时间
if(r+time-yu>0) {
time = r+time-yu;
flag=false;
}
else time = r+time;
}else if(light==3) { //如果是绿灯 下一次将变为黄灯
light=2;
//黄灯的剩余时间
if(y+time-yu>0) {
time = y+time-yu;
flag=false;
}
else time = y+time;
}
}
}
//开始相加
if(light==0 || light==1) { //1红2黄3绿 亮灯红绿黄
ans+=time;
continue;
}else if(light==2) {
ans+=time;
ans+=r;
continue;
}else if(light==3) continue;
}
System.out.print(ans);
}
}
CCF-CSP 201812-2小明放学
最新推荐文章于 2022-03-15 14:11:44 发布