时隔一年半重写,区间贪心
按右端点排序
题目链接
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct node {
int st, ed;
bool operator < (const node &t) const {
if (ed != t.ed) return ed < t.ed;
return st < t.st;
}
};
int main() {
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
#endif
int n;
while (cin >> n && n != 0) {
vector<node> v;
for (int i = 0; i < n; i++) {
node a;
cin >> a.st >> a.ed;
v.push_back(a);
}
sort(v.begin(), v.end());
int cnt = 0, ed = -1;
for (int i = 0; i < v.size(); i++) {
// cout << v[i].st << " " << v[i].ed << endl;
if (v[i].st >= ed) {
cnt++;
ed = v[i].ed;
}
}
cout << cnt << endl;
}
return 0;
}