描述
大学生电影节在北大举办! 这天,在北大各地放了多部电影,给定每部电影的放映时间区间,区间重叠的电影不可能同时看(端点可以重合),问李雷最多可以看多少部电影。
输入
多组数据。每组数据开头是n(n<=100),表示共n场电影。
接下来n行,每行两个整数(0到1000之间),表示一场电影的放映区间
n=0则数据结束
输出
对每组数据输出最多能看几部电影
样例输入
8 3 4 0 7 3 8 15 19 15 20 10 15 8 18 6 12 0
样例输出
3
import functools
def compare_movie(x, y):
return x.end_time - y.end_time
class Movie:
def __init__(self, start, end):
self.start_time = start
self.end_time = end
while (1):
n = int(input())
if n == 0:
break
movies = []
for i in range(n):
start_time, end_time = map(int, input().split()) # 起始时间,结束时间
movies.append(Movie(start_time, end_time))
movies.sort(key=functools.cmp_to_key(compare_movie))#按结束时间先后排序
count =1
last=0
for i in range(1,n):
if(movies[i].start_time>=movies[last].end_time):
count+=1
last=i
print(count)