python实现
时间: 2023-06-29 17:16:27 浏览: 104
以下是Python实现代码:
```python
n = int(input("请输入作业数量:"))
t = []
k = []
for i in range(n):
ti, ki = map(int, input("请输入第{}个作业的截止时间和逾期扣分:".format(i+1)).split())
t.append(ti)
k.append(ki)
# 按照最后提交时间从小到大排序
homeworks = sorted(list(zip(t, k)), key=lambda x: x[0])
# 按照截止时间从小到大依次完成作业
total_score = 0
remaining_time = 0
for i in range(n):
ti, ki = homeworks[i]
if ti > remaining_time:
# 还有足够时间完成该作业
remaining_time = ti - 1
total_score += ki
else:
# 已经无法完成该作业,直接扣分
total_score += ki
print("小明的作业完成顺序为:", end="")
for i in range(n):
ti, ki = homeworks[i]
if ti > remaining_time:
print(i+1, end="-")
remaining_time = ti - 1
print("总扣分为:", total_score)
```
在运行程序时,需要依次输入每个作业的截止时间和逾期扣分,例如:
```
请输入作业数量:3
请输入第1个作业的截止时间和逾期扣分:1 6
请输入第2个作业的截止时间和逾期扣分:3 2
请输入第3个作业的截止时间和逾期扣分:1 3
```
程序输出结果为:
```
小明的作业完成顺序为:1-2-3-
总扣分为:5
```
阅读全文