#621. 校园讲座的一天

校园讲座的一天

校园讲座的一天

故事背景

学校科技节这一天,从早到晚安排了许多场讲座。每场讲座都有一个开始时间和结束时间,你只能在同一时间段内待在一个教室里。你当然希望尽可能多听几场不同的讲座,但又不想错过任何一场的开头或结尾。

现在你拿到了所有讲座的时间安排表,想知道,在不时间冲突的前提下,这一天最多能参加多少场讲座。

题目描述

一天内共有 nn 场讲座,第 ii 场讲座在时间区间 [si,ei][s_i, e_i] 内进行(包含开始时刻和结束时刻),其中 sis_ieie_i 都是整数分钟,且 si<eis_i < e_i

你一次只能参加一场讲座。如果上一场讲座在时间 tt 结束,那么下一场讲座必须在时间 tt 之后才开始;如果某场讲座的开始时间等于上一场的结束时间,视为可以无缝衔接。

请计算,在不发生时间重叠的前提下,你最多可以参加多少场讲座。

输入格式

  • 第一行包含一个整数 nn,表示讲座的数量。
  • 接下来 nn 行,每行包含两个整数 si,eis_i, e_i,表示一场讲座的开始和结束时间。

输出格式

  • 输出一行,一个整数,表示一天中最多可以参加的讲座场数。

输入输出样例 #1

输入 #1

4
9 12
13 15
11 14
15 18

输出 #1

3

样例解释 #1

一种可行安排是参加 [9,12][9,12][13,15][13,15][15,18][15,18] 这三场讲座,总共 3 场。

说明/提示

  • 对于所有测试数据,保证 1n2×1051 \le n \le 2 \times 10^5
  • 所有时间满足 0si<ei1090 \le s_i < e_i \le 10^9
  • 输入规模较大,请注意程序的时间效率。