T29947: 校门外的树又来了
http://cs101.openjudge.cn/practice/29947/
cpp
#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
int L,n,r=-1,sum;
pii d[105];
bool cmp(pii &x,pii &y){
if(x.first==y.first)
return x.second>y.second;
return x.first<y.first;
}
int main(){
scanf("%d %d",&L,&n);
for(int i=1;i<=n;i++)
scanf("%d %d",&d[i].first,&d[i].second);
sort(d+1,d+1+n,cmp);
d[0].first=-1;
for(int i=1;i<=n;i++){
if(d[i].first==d[i-1].first || d[i].second<=r)
continue;
if(r>=d[i].first)
sum+=d[i].second-r;
else
sum+=d[i].second-d[i].first+1;
r=d[i].second;
}
printf("%d",L+1-sum);
return 0;
}