小明上学,老师布置了 n 个作业,每个作业恰好需要一天做完,每个作业都有最后提交时间ti及其逾期的扣分ki。输入作业数量n、每个作业的最后提交时间t以及逾期扣分k,以输入n=0作为结束,给出python代码
时间: 2024-02-15 15:01:31 浏览: 103
以下是一个使用 Python 实现的代码示例:
```python
while True:
n = int(input("请输入作业数量:"))
if n == 0:
break
t = []
k = []
for i in range(n):
t_i, k_i = map(int, input("请输入第{}个作业的最后提交时间和逾期扣分,以空格分隔:".format(i+1)).split())
t.append(t_i)
k.append(k_i)
# 将所有作业按照最后提交时间从小到大排序,如果最后提交时间相同,则按照逾期扣分从小到大排序
homeworks = [(t[i], k[i]) for i in range(n)]
homeworks = sorted(homeworks, key=lambda x: (x[0], x[1]))
# 按照排好序的顺序一个一个地完成作业
total_score = 0
for i in range(n):
deadline, score = homeworks[i]
if deadline > i + 1: # 如果逾期了
total_score += score
print("小明需要扣除的总分数为:", total_score)
```
这个代码使用了一个无限循环,每次循环中根据输入的作业数量和具体的作业信息计算出小明需要扣除的总分数。当输入作业数量为 0 时,循环结束。
阅读全文