首先读懂题。。
灯的顺序是: 红->绿->黄。别搞错了…(别问为啥强调)
红黄灯时不可以走,绿灯时可以同行
给的数据 第一行为红黄绿灯的时间,然后是路段数/数据组数
每行数据,
第一个表示遇到的灯的情况,0无灯,1红2黄3绿
第二个数据表示走该段路的花费的时间(第一个数据为零时)或者灯上显示的时间(第一个数据不为零时)
获取数据:
用 r,g,y,记录各个灯的时间
用num,记录数据个数
num_lis ,接受数据
result ,记录花费总时间
然后按输入顺序处理数据:
需要记录红绿灯的情况,并且更新,如果等待,要考虑等待的情况
一共就四种情况,没有红绿灯和绿灯最简单,总时间增加走路的时间就行了
红灯时增加剩余红灯的时间
黄灯时增加剩余黄灯的时间和红灯的时间
r,g,y=map(int,input().split())
num=int(input())
num_list=[]
result=0
for i in range(num):
temp_list=list(map(int,input().split()))
num_list.append(temp_list)
for i in range(num):
if num_list[i][0]==0:#无灯
result=result+num_list[i][1]
if num_list[i][0] == 1:#红灯
result = result + num_list[i][1]
if num_list[i][0] == 2:#黄灯
result = result + num_list[i][1] + r
if num_list[i][0] == 3:#绿灯
pass
print(result)
当时自己做时没仔细读题。。灯的顺序被我搞错了。。老是不能满分。。。emmm太马虎了,所以这篇写的详细点。