给定 𝑁 个闭区间 [𝑎𝑖,𝑏𝑖],请你在数轴上选择若干区间,使得选中的区间之间互不相交(包括端点)。
输出可选取区间的最大数量。
输入格式
第一行包含整数 𝑁,表示区间数。
接下来 𝑁 行,每行包含两个整数 𝑎𝑖,𝑏𝑖,表示一个区间的两个端点。
输出格式
输出一个整数,表示可选取区间的最大数量。
数据范围
1≤𝑁≤,
−≤𝑎𝑖≤𝑏𝑖≤
输入样例:
3
-1 1
2 4
3 5
输出样例:
2
代码:
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;const int N = 100010;
int n,l,r;
vector<pair<int,int>> Interval;int main(){cin>>n;for(int i = 0;i < n;i ++){cin>>l>>r;Interval.push_back({r,l});}sort(Interval.begin(),Interval.end());int res = 0, RightEnd = -2e9;for(int i = 0;i < n;i ++){int left = Interval[i].second;int right = Interval[i].first;if(left > RightEnd){res ++;RightEnd = right;}}cout<<res<<endl;return 0;
}