样例输入 Copy
10
7 9
4 9
7 8
2 5
3 4
5 6
1 6
2 8
3 5
3 4
5
3 6
5 6
1 8
0 6
7 8
5
4 12
9 18
6 7
0 2
5 7
样例输出 Copy
7
4
3
#include<stdio.h>
int main()
{
//n表示有多少人 a用来记录进场的时间 b记录出场的时间
int n;
int a[5050];
int b[5050];
//用数组c记录每个时间段的人数
int c[5050];
while(scanf("%d",&n)!=EOF){
//min表示最小的进场时间 max表示最大的进场时间 sum表示最多时候的人数
//index用来表示数组c的下标
int min=505,max=0,sum=0,index=0;
for(int i=0;i<n;i++){
scanf("%d%d",&a[i],&b[i]);
}
//求出min和max的值
for(int i=0;i<n;i++){
if(min>a[i]){
min=a[i];
}
}
for(int i=0;i<n;i++){
if(max<a[i]){
max=a[i];
}
}
for(int i=min;i<=max;i++){
int num=0;
//num用来记录每个时间段的人数
for(int j=0;j<n;j++){
if(a[j]<=i&&b[j]>=i){
num++;
}
}
c[index]=num;
index++;
}
//遍历数组c,找出最大的值
for(int i=0;i<index;i++){
if(sum<c[i]){
sum=c[i];
}
}
printf("%d\n",sum);
}
return 0;
}