终于到周末了,憨憨是特别喜欢看电影。他想在一天内尽量多的看到完整的多部电影。 现在他把他喜欢的电影的播放时间表给你,希望你能帮他合理安排。 输入格式: 输入包含多组测试数据。每组输入的第一行是一个整数n(n<=100),表示明明喜欢的电影的总数。 接下来n行,每行输入两个整数si和ei(1<=i<=n),表示第i个电影的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。 当n=0时,输入结束。 输出格式: 对于每组输入,输出能完整看到的电影的个数。 输入样例: 12 1 3 3 4 0 7 3 8 15 19 15 20 10 15 8 18 6 12 5 10 4 14 2 9 0 输出样例: 5
时间: 2024-02-19 20:02:44 浏览: 106
我的憨憨女友都能看懂学会的python多线程
以下是Python3的代码实现:
```python
while True:
n = int(input())
if n == 0:
break
movies = []
for i in range(n):
s, e = map(int, input().split())
movies.append((s, e))
# 按照结束时间升序排序
movies.sort(key=lambda x: x[1])
end_time = -1 # 上一个看完的电影的结束时间
count = 0
for s, e in movies:
if s >= end_time:
end_time = e
count += 1
print(count)
```
对于每组输入,先将电影的播放时间表按照结束时间升序排序。然后,从前往后遍历电影的播放时间表,如果当前电影的开始时间不早于上一个看完的电影的结束时间,则可以选择看这个电影,并将上一个看完的电影的结束时间更新为当前电影的结束时间。最后统计看完的电影数量即可。
阅读全文