贪心题
这都已经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;
}