#1520. 活动安排大师

活动安排大师

故事背景

在一年一度的校园文化节中,学生会需要安排各种活动。由于场地有限,每个活动都需要占用特定的时间段,且同一时间只能进行一个活动。作为学生会的活动安排大师,你需要尽可能多地安排活动,以丰富同学们的校园生活。

题目描述

给定一系列活动,每个活动有开始时间和结束时间。请你选择尽可能多的活动,使得这些活动不相互冲突(即两个活动的时间区间不重叠)。

请编写一个 C++ 程序,实现上述功能。

输入格式

第一行输入一个整数 n ( 1n10001 \le n \le 1000 ),表示活动的数量。

接下来 n 行,每行输入两个整数 s 和 e ( 0s<e1090 \le s < e \le 10^9 ),分别表示活动的开始时间和结束时间。

输出格式

输出一个整数,表示最多可以安排的活动数量。

样例输入 1

5
1 4
2 5
3 6
5 7
6 8

样例输出 1

3

样例输入 2

3
1 2
3 4
5 6

样例输出 2

3

样例输入 3

4
1 3
2 4
3 5
4 6

样例输出 3

2

提示

  • 这是一个经典的贪心算法问题
  • 思考如何选择活动的顺序,使得能安排最多的活动
  • 注意活动的开始时间和结束时间的比较