Sol:就是双关键字排序,枚举一下符合题意的就OK了。
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn = 16000 + 10;
struct Point{
int x,y;
}arr[maxn];
bool cmp(const Point &a,const Point &b)
{
return (a.x<b.x||a.x==b.x&&a.y<b.y);
}
int main()
{
int n,j,cnt;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d%d",&arr[i].x,&arr[i].y);
sort(arr,arr+n,cmp);
j=0;
cnt=1;
for(int i=1;i<n;i++)
{
if(arr[i].x==arr[i].y||arr[i].y>=arr[j].y)
{
j=i;
cnt++;
}
}
printf("%d\n",n-cnt);
return 0;
}