王道机试指南 例题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;
}
运行结果:


