您的位置:首页 > 其它

世界杯来了 oj151

2017-08-01 00:01 197 查看


世界杯来了

发布时间: 2017年7月27日 19:08   最后更新: 2017年7月27日 19:08   时间限制: 1000ms   内存限制: 128M

描述

2014年是世界杯年,小明作为一个资深球迷必然不会错过这场足球界的饕餮盛宴。但是由于比赛太多,而且并不是任何时间小明都能够看球赛,所以小明把他重点关注的那些球赛的转播时间表给你,希望你能够帮他合理安排一下,让他能够尽量多的看到完整的球赛。

输入

输入包含多组测试数据,每组输入的第一行是一个整数n(n<=100),表示小明重点关注的球赛数目。(实际上一届世界杯总共有64场球赛,这里我们假设一届世界杯最多有100场比赛) 接下来n行,每行输入两个整数si和ei(1<=i<=n),表示第i场球赛的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。(这里我们也不限制每场球赛必须是90分钟) 

当n=0时,输入结束。

输出

对于每组输入,输出能完整看到的球赛的场数。

样例输入1 复制
8
39 81
16 79
87 93
81 90
79 83
97 100
87 98
89 100


样例输出1
4


#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define N 10001
struct Action
{
int start;
int end;
};
typedef struct Action A;
A act
;
bool cmp(A a, A b)
{
return a.end < b.end;
}
int main()
{
int n;
while (1)
{
cin >> n;
if (!n)
break;
memset(act, 0, sizeof(act));
for (int i = 0; i < n; i++)
scanf("%d%d", &act[i].start, &act[i].end);
sort(act, act + n, cmp);
int ans = 1,i = 1,j = 0;
while (i < n)
{
if (act[j].end <=act[i].start)
{
ans++;
j = i;
}
i++;
}
cout << ans << endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ACM