1 #include <iostream> 2 #include <stdio.h> 3 #include <cstring> 4 #include <cmath> 5 #include <algorithm> 6 7 8 using namespace std; 9 10 struct node 11 { 12 int start; // 开始时间 13 int end; // 结束时间 14 }a[101]; 15 16 bool cmp(node a, node b) 17 { 18 return a.end <= b.end; 19 } 20 21 int main() 22 { 23 int n; 24 while(cin >> n && n != 0) 25 { 26 for(int i = 0; i < n; ++i) 27 cin >> a[i].start >> a[i].end; 28 29 sort(a, a+n, cmp); // 按结束时间从小到大排序 30 31 int ans = 1; // 假设已经选了第一个最优解 32 int lastEnd = a[0].end; // 保存上一个最优解的区间end值 33 for(int i = 1; i < n; ++i) // 从第二个最优解开始选 34 { 35 if(a[i].start >= lastEnd) 36 { 37 ans++; 38 lastEnd = a[i].end; 39 } 40 } 41 cout << ans << endl; 42 } 43 44 45 return 0; 46 }