Python L18 排队

【问题】

游乐场新引进了一套VR (虚拟现实) 游乐设备,每场游戏10分钟,只能一个人体验。
每次游戏,玩家需要支付1个游戏币,游戏结束后如果还要玩,必须到队尾重新排队。走到队尾不计时间。
有n个小朋友排队,每个小朋友都有若干个游戏币。他们会将自己的游戏币消费完,才离开队伍。
希希站在队伍的第k个位置 (从1开始算),请你帮她算一下,她需要多长时间才能用完所有游戏币,并玩完最后一场游戏。 (单位: 分钟)例如:
n=3,k=2,3个小朋友的游戏币数量,按排队顺序依次是2,3,2,希希站在第2位。
第一轮,每个小朋友玩一次,用时30分钟,小朋友们剩余的游戏币数量依次是
1, 2,1;
第二轮,每个小朋友玩一次,用时30分钟,小朋友们剩余的游戏币数量依次是
0, 1. 0;
第三轮,只剩下希希用自己的最后一个游戏币玩一次,用时10分钟希希用自己的最后一个游戏币玩完游戏,总共需要的时间70分钟。

【输入】

共三行
第一行一个正整数n (1n<100) ,代表小朋友的数量
第二行一个正整数k (1sksn) ,代表希希的位置
第三行,包含n个整数 (1<整数<100),依次代表每个小朋友的游戏币个数(按排队顺序),整数之间以一个空格隔开

【输出】

一个整数,为希希用自己的最后一个游戏币玩完游戏需要的时间。

【输入样例 1】

3
2
2 3 2

【输出样例 1】

70

【解决方案】

使用列表

ans = 0
n = input()
k = int(input()) #整型
ls = [eval(n) for n in input().split()]
l = [int(n) for n in ls ] #将列表中的字符串转为数字
while l[k - 1] > 0:
    ans += 10
    l[k - 1] -= 1
    for i in range(len(l)): #使用range()函数遍历列表
        if (i != k - 1 and l[i] > 0):
            l[i] -= 1
            ans += 10
print(ans)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值