题目描述
电视里将要播放 nn 个节目,第 ii 个节目从时刻 sisi 开始,到 titi 结束,没有回放。小爱有一台录像机,一台录像机在工作的时候只能录一个节目,小爱最多可以录下多少完整的节目呢?
如果某节目的结束时间等于另一个节目的开始时间,那么这两个节目是可以用一台录像机的。
输入格式
- 第一行:单个整数 nn
- 第二行到第 n+1n+1行:第 i+1i+1 行有两个整数 sisi 和 titi
输出格式
- 单个整数:表示最大可以录制的节目数量。
数据范围
- 对于 30%30% 的数据,n≤500n≤500
- 对于 60%60% 的数据,n≤2000n≤2000
- 对于 100%100% 的数据,1≤n≤200,0001≤n≤200,000
- 0≤si,ti≤1,000,000,0000≤si,ti≤1,000,000,000
样例数据
输入:
3
6 9
1 5
2 8
输出:
2
详见代码:
#include<bits/stdc++.h>
using namespace std;
int n;
struct node
{
int s;
int t;
};
node a[200005];
bool cmp(node x, node y)
{
return x.t < y.t;
}
int ans = 0;
int main()
{
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> a[i].s >> a[i].t;
}
sort(a + 1, a + n + 1, cmp);
int t = 0;
for(int i = 1; i <= n; i++)
{
if (a[i].s >= t)
{
ans++;
t = a[i].t;
}
}
cout << ans;
return 0;
}