不知道这个思路那错了,求帮助!!
#include<iostream>
#include<algorithm>
using namespace std;
#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define endl '\n'
typedef long long ll;
const int N=1e6+9;
struct node{
int fir;
int sec;
int cha;
}p[N];
bool cmp(node a,node b){
if(a.cha!=b.cha)return a.cha<b.cha;
else return a.fir<b.fir;
}
int a[N];
void solve(int x,int y){
for(int i=x;i<=y;i++)a[i]=1;
}
bool cmp_1(int x,int y){
for(int i=x;i<=y;i++){
if(a[i]==1&&i!=x)return 0;
}
return 1;
}
int main(){
ios;
int n,ans=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>p[i].fir>>p[i].sec;
p[i].cha=p[i].sec-p[i].fir;
}
sort(p+1,p+1+n,cmp);
for(int i=1;i<=n;i++){
if(cmp_1(p[i].fir,p[i].sec)){
solve(p[i].fir,p[i].sec);
ans++;
}
}
cout<<ans<<endl;
return 0;
}