#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:又用到快速排序...

评论