当前位置:   article > 正文

【区间贪心】合理安排电视节目_c语言看尽量多的节目

c语言看尽量多的节目

【题目】

假设你已经知道了所有你喜欢看的电视节目的转播时间表,为了能看尽量多的完整节目,你会合理安排吗?

【输入】

输入数据包含多个测试实例。

第一行只有一个整数 n(n<=100),表示你喜欢看的节目的总数。n=0时表示输入结束,不做处理。

然后是 n 行数据,每行包括两个数据 Tis 和 Tie(1<=i<=n),分别表示开始和结束时间。

【样例输入】

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 

【样例输出】

5

【输出】

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

【分析】

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. using namespace std;
  5. struct Program{
  6. int startTime;
  7. int endTime;
  8. };
  9. const int MAX=100;
  10. Program arr[MAX];
  11. bool Compare(Program x,Program y)
  12. {
  13. return x.endTime<y.endTime;
  14. }
  15. int main()
  16. {
  17. int n;
  18. while(cin>>n)
  19. {
  20. if(n==0)
  21. break;
  22. for(int i=0;i<n;i++)
  23. cin>>arr[i].startTime>>arr[i].endTime;
  24. sort(arr,arr+n,Compare);//按结束时间升序排序
  25. int currentTime=0;//设置当前时间
  26. int answer=0;
  27. for(int i=0;i<n;i++)
  28. {
  29. if(currentTime<=arr[i].startTime)
  30. {
  31. currentTime=arr[i].endTime;
  32. answer++;
  33. }
  34. }
  35. cout<<answer;
  36. }
  37. return 0;
  38. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/196143?site
推荐阅读
相关标签
  

闽ICP备14008679号