电影节

描述

大学生电影节在北大举办! 这天,在北大各地放了多部电影,给定每部电影的放映时间区间,区间重叠的电影不可能同时看(端点可以重合),问李雷最多可以看多少部电影。

输入

多组数据。每组数据开头是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)

上一篇:js 模块化历程


下一篇:30.有趣的例子(输入电影名称,并打分)