和上一个小明上学的规则一样,红绿黄是一个循环。
处理不同路口红绿灯的方法:走到每个路口时,把相应的等待时间化成绝对时间,然后对循环(r+g+y)取模,求剩余等待时间
每个路口的时间转换为
0 10
25
0 11
61
0 6
0 3
50
0 3
然后加上当前时间sum,计算所属区间和等待时间即可。
r, y, g = [int(i) for i in input().split()]
circle = r+y+g #循环用时[0,r),[r,r+g),[r+g,r+g+y)
n = int(input())
cnt = n
sum = 0
while(cnt):
cnt -= 1
lamp, t = [int(i) for i in input().split()]
if(lamp == 0):
sum += t
elif(lamp == 1): #红
t = r-t
flag =(t+sum) % circle
if(flag<r):
sum += r-flag
elif(flag >= r+g):
sum += circle+r-flag
elif(lamp == 2): #黄
t = circle-t
flag =(t+sum) % circle
if(flag<r):
sum += r-flag
elif(flag >= r+g):
sum += circle+r-flag
elif(lamp == 3): # 绿
t = r+g-t
flag =(t+sum) % circle
if(flag<r):
sum += r-flag
elif(flag >= r+g):
sum += circle+r-flag
print(sum)