显示原始代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
struct el {
ll l, r;
} m[200005];
bool cmp(el a, el b) {
if (a.l != b.l)
return a.l < b.l;
return a.r > b.r;
}
void test(int n) {
for (int i = 0; i < n; i++) printf("%lld %lld\n", m[i].l, m[i].r);
}
int main() {
std::ios::sync_with_stdio(false);
ll n, p;
cin >> n >> p;
for (int i = 0; i < p; i++) {
cin >> m[i].l >> m[i].r;
}
sort(m, m + p, cmp);
ll ans, start, tail;
ans = 1;
start = m[0].r;
tail = m[0].r;
ll pre = 0;
while (tail < n && pre < p) {
while (m[pre].l <= start + 1 && pre < p) {
tail = max(tail, m[pre].r);
pre++;
}
start = tail;
ans++;
}
cout << ans;
return 0;
}