我自己测试时最后一个点和答案一模一样,但提交了多次都没过,希望dalao帮忙看看哪里出问题了???
感激不尽!!!
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
const int N=5010;
struct tree
{
int a;
int b;
}t[N];
bool cmp(tree a,tree b)
{
return a.b<=b.b;
}
int n,tot,ans[N];
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d%d",&t[i].a,&t[i].b);
sort(t+1,t+1+n,cmp);
ans[++tot]=t[1].a;
for(int i=2;i<=n;i++)
{
if(t[i].a<ans[tot]) ans[++tot]=t[i].a;
else
{
int l=1,r=tot;
while(l<r)
{
int mid=(l+r)/2;
if(t[i].a>=ans[mid]) r=mid;
else l=mid+1;
}
ans[l]=t[i].a;
}
}
printf("%d\n",tot);
return 0;
}