思路:按结束时间排序,遍历比较 (优先选择结束时间早的)
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct Node
{
int l, r;
} a[105];
bool cmp(Node n1, Node n2){
return n1.r!=n2.r?n1.r<n2.r:n1.l>n2.l;
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("2037in.txt","r",stdin);
#endif
int n, i;
while(cin>>n&&n){
for(i = 0; i < n; i++){
cin>>a[i].l>>a[i].r;
}
sort(a, a+n, cmp);
int ans = 1, k = 0;
for(i = 1; i < n; i++){
if(a[i].l >= a[k].r){
ans++;
k = i;
}
}
cout<<ans<<endl;
}
return 0;
}