信息学奥赛一本通(C++版)在线评测系统 (ssoier.cn)
#include<bits/stdc++.h>
using namespace std;
#define N 1000005
int b[N], e[N];
struct Act
{
int begin, end;
};
Act act[N];
bool cmp(Act a, Act b)
{
return a.end < b.end;
}
int main()
{
int n, actNum = 0, lastAct = 0;
scanf("%d", &n);
for(int i = 1; i <= n; ++i)
scanf("%d %d", &act[i].begin, &act[i].end);
sort(act+1, act+1+n, cmp);
for(int i = 1; i <= n; ++i)
{
if(lastAct == 0 || act[i].begin >= act[lastAct].end)
{
actNum++;
lastAct = i;
}
}
printf("%d", actNum);
return 0;
}