/*会场安排问题 ACM 第一行有1 个正整数k,表示有k 个待安排的活动。接下来的k 行中,每行有2 个正整数,分别表示k 个待安排的活动开始时间和结束时间。时间以0 点开始的分钟计。
希望使用尽可能少的会场. 设计算法求出 需要的最少会场数.
*/
// 这道题有很多种做法, 最流行的时贪心算法
// 但我发现了一个 特殊的做法 ,可以把这道题变得 非常简单
#define NUM 1440
int main(int argc, const char * argv[]) {// 这道题时间最小剂量时间是分钟 那么 一天有 24 * 60 = 1440 分钟
int times[NUM] = {0};
int theMeetingCount = 0;//会场数;
int beginTime = 0, endTime = 0;//每个会场的开始 结束 时间;
scanf("%d", &theMeetingCount);//得到会场数
for (int i = 0; i < theMeetingCount; i++) {
scanf("%d %d", &beginTime, &endTime);
for (int j = beginTime; j <= endTime; j++) {
times[j] += 1;
}
}
int max = 0;
for (int i = 0; i < NUM; i++) {
max = max > times[i] ? max : times[i];//得到times 数组中最大的值
}
printf("%d", max);//这个最大值就是需要的最少会场数 很神奇哦 不信 试试!
return 0;
}