貪心政策:目前節目中選擇結束時間最早的,保證剩餘觀看時間的最大化。
#include<iostream>
#include<algorithm>
using namespace std;
struct t{
int ti_s;
int ti_e;
}time[101];
bool cmp(t t1,t t2){
return t1.ti_e<t2.ti_e;
}
int main(){
int n;
while(cin>>n){
if(n==0){
break;
}
for(int i=0;i<n;i++){
cin>>time[i].ti_s>>time[i].ti_e;
}
sort(time,time+n,cmp);
int maxtime=time[n-1].ti_e;
int i=0,j=0;
int count=0;
int current=0; //目前時間
while(i<n){
count++;
current=time[i].ti_e; //目前時間即這個視訊的結束時間
j=i+1;
while(j<n){
if(time[j].ti_s<current){ //不能完整看,跳過
j++;
}
else{
break;
}
}
i=j;
}
cout<<count<<endl;
}
return 0;
}