题目
#include <iostream>
#include <algorithm>
using namespace std;
int arr[32768];
struct node
{
int begin,end,last;
}a[1001];
int cmp(node a,node b)
{
return a.last<b.last;
}
int check(int begin,int end)
{
for(int i=begin+1;i<end;i++) if(arr[i]) return 0;
return 1;
}
int main()
{
int n,ans=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].begin>>a[i].end;
a[i].last=a[i].end-a[i].begin;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++)
{
if(check(a[i].begin,a[i].end))
{
ans++;
for(int j=a[i].begin;j<=a[i].end;j++) arr[j]=1;
}
}
cout<<ans;
return 0;
}