Skip to content

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;
}