题目:每个会议i都有起始时间bi和结束时间ei,如何在有限的时间内安排最多的会议
# 高级钟点秘书--会议安排
'''
样例1
10
8 10
9 11
10 15
11 14
13 16
14 17
15 17
17 18
18 20
16 19
'''
'''
样例2
10
3 6
1 4
5 7
2 5
5 9
3 8
8 11
6 10
8 12
12 14
'''
# 贪心策略
# 优先选择结束时间早的,如果结束时间相同,选择持续时间短的
class m():
def __init__(self, i, b, e) -> None:
self.i = i+1
self.b = b
self.e = e
self.d = self.e-self.b
mrr = []
n = int(input())
for i in range(n):
b, e = map(int, input().split())
mrr.append(m(i, b, e))
mrr.sort(key=lambda x: (x.e, x.d))
# for j in range(n):
# print(mrr[j].b, end=' ')
# print()
# for j in range(n):
# print(mrr[j].e, end=' ')
start = mrr[0].b
end = mrr[0].e
res = [mrr[0].i]
for j in range(1, n):
if mrr[j].b < end:
continue
start = mrr[j].b
end = mrr[j].e
res.append(mrr[j].i)
print("秘书安排的会议有:", res)