有若干個活動,第i個開始時間和結束時間是[Si,fi),同一個教室安排的活動之間不能交疊,求要安排所有活動,最少需要幾個教室?
Input 第一行一個正整數n (n <= 10000)代表活動的個數。
第二行到第(n + 1)行包含n個開始時間和結束時間。
開始時間嚴格小於結束時間,並且時間都是非負整數,小於1000000000 Output 一行包含一個整數表示最少教室的個數。 Sample Input
3 1 2 3 4 2 9Sample Output
2
#include<cstdio>
#include<algorithm>
using namespace std;
int starttime[10001];
int endtime[10001];
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<=n-1;i++){
scanf("%d",&starttime[i]);
scanf("%d",&endtime[i]);
}
sort(starttime,starttime+n);
sort(endtime,endtime+n);
int sum=0;
int a=0;
int b=0;
for(a=0;a<=n-1;a++){
if(starttime[a]<endtime[b]){//開始時間小於結束時間
sum++;
}else{//開始時間大於等於結束時間
b++;
}
}
printf("%d",sum);
return 0;
}