C - 9102年啦

贪心题

这都已经9102年了,杨队竟然还在看电视。 他手上有各个电视节目的开始/结束时间,请你帮忙看看他最多能在这段时间里看完几个电视节目(必须是完整的,不然杨队会觉得很不爽)

Input

输入数据包含多个测试实例,每个测试实例的第一行只有一个整数n(n<=100),表示你喜欢看的节目的总数,然后是n行数据,每行包括两个数据Ti_s,Ti_e (1<=i<=n),分别表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。n=0表示输入结束,不做处理。 

Output

对于每个测试实例,输出能完整看到的电视节目的个数,每个测试实例的输出占一行。

Sample Input

12
1 3
3 4
0 7
3 8
15 19
15 20
10 15
8 18
6 12
5 10
4 14
2 9
0

Sample Output

5
#include<iostream>
#include<algorithm>
using namespace std;
//结构体定义
struct  jiegou
{
	int startime;
	int endtime;
};
//规则定义
bool compare(jiegou a,jiegou b)
{
	return a.endtime<b.endtime;
}
int main()
{
	int n,max,t;
	jiegou arry[102];
	while(scanf("%d",&n)&&n)
	{
		for(int i=0;i<n;i++)
		scanf("%d %d",&arry[i].startime,&arry[i].endtime);
		sort(arry,arry+n,compare);
	 max=arry[0].endtime;
		 t=1;
		for(int i=1;i<n;i++)
		{
			if(max<=arry[i].startime)
			{
				t++;
				max=arry[i].endtime;
			}
			
		}
		cout<<t<<endl;
	}
	return 0;
 } 

猜你喜欢

转载自blog.csdn.net/weixin_42143003/article/details/86752576
今日推荐