#include <iostream.h>
#include <stdlib.h>
int comp(const void* a,const void *b)
{
int *x=(int*)a;
int *y=(int*)b;
return *x-*y;
}
int MaxVisitors(int X[], int Y[], int n)
{
int max=0,p1=0,p2=0,car=0;
while(p1<n && p2<n)
{
if(X[p1]<Y[p2])
{
car++;
p1++;
}
else if(X[p1]==Y[p2])
{
p1++;
p2++;
}
else
{
if(car>0)
car--;
p2++;
}
if(car>max) max=car;
}
return max;
}
int main()
{
int X[10000],Y[10000],n,i;
cin>>n;
for(i=0;i<n;i++)
cin>>X[i]>>Y[i];
qsort(X,n,sizeof(int),comp);
qsort(Y,n,sizeof(int),comp);
cout<<MaxVisitors(X, Y, n)<<endl;
}
PS:又用到快速排序...
评论