王道机试指南 例题7.4 今年暑假不AC
题目:
算法:
代码:
#include <iostream> #include <algorithm> using namespace std; struct program{//记录每个节目的开始时间和结束时间 int start; int end; }; bool compare(program x,program y){ return x.end<y.end; } int main() { int n; while(cin>>n && n!=0){ program arr[n]; for(int i=0;i<n;i++){ cin>>arr[i].start>>arr[i].end; } sort(arr,arr+n, compare);//按节目的结束时间从低到高进行排序 int count=0;//记录能够完整看完的节目数 int st=0;//记录当前时间 for(int i=0;i<n;i++){ if(arr[i].start>=st){//如果节目的开始时间>=当前时间,则可以完整看完,否则测试下一个节目 st=arr[i].end; count++; } } cout<<count<<endl; } return 0; }
运行结果: