思路题吧,和SGU231一样,time limit per test: 0.5 sec. memory limit per test: 4096 KB。
读入数据后,按照b从小到大的顺序排序,然后从后向前扫描一遍,记录当前最小值,如果x[i]>min,就说明i满足条件。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define MAXN 16010
using namespace std;
struct se
{
int a,b;
bool operator <(const se& rth) const
{
return b<rth.b;
}
} ;
int main()
{
se num[MAXN];
int n,min,ans;
//while(scanf("%d",&n)!=EOF)
//cin>>n;
scanf("%d",&n);
{
for(int i=0; i<n; i++)
scanf("%d%d",&num[i].a,&num[i].b);
sort(num,num+n);
min=num[n-1].a;
ans=0;
for(int i=n-2; i>=0; i--)
{
if(num[i].a>min)
ans++;
else min=num[i].a;
}
printf("%d\n",ans);
//cout<<ans<<endl;}
}
return 0;
}