// 区间贪心——尽可能多的开区间.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
learn && wrong:
1、还是得那个图来看,首先,排序是关键,然后再是FOR循环,以第一个【0】为lastx,不断更新并且累加
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 110;
struct invel {
int x, y;
}I[maxn];
bool cmp(invel a, invel b) {
if (a.x != b.x) return a.x > b.x;
else return a.y < b.y;
}
int main()
{
int n;
while (scanf("%d", &n), n != 0) {
for (int i = 0;i < n;++i) {
scanf("%d %d", &I[i].x, &I[i].y);
}
sort(I, I + n, cmp); //把区间排序
//ans记录不想区间的个数,lastx记录上个被选中区间的左端点
int ans = 1,lastx = I[0].x;
for (int i = 1;i < n;++i) {
if (I[i].y < lastx) { //如果该区间右断电在lastX左边
lastx = I[i].x; //以I[i]做为新选中的区间,不想交区间个数+1
ans++;
}
}
printf("%d\n", ans);
}
return 0;
}