CCF&Python 2018-12-1 小明上学

CCF&Python 2018-12-1 小明上学

原题目


在这里插入图片描述

思路

首先读懂题。。
灯的顺序是: 红->绿->黄。别搞错了…(别问为啥强调)
红黄灯时不可以走,绿灯时可以同行
给的数据 第一行为红黄绿灯的时间,然后是路段数/数据组数
每行数据,
第一个表示遇到的灯的情况,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太马虎了,所以这篇写的详细点。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值