80pts RE#1#8求助(马蜂良好
查看原帖
80pts RE#1#8求助(马蜂良好
525038
leiwusi楼主2024/1/7 18:38
#include<iostream>
#include<algorithm>
using namespace std;

const int MAXN = 2e4+114;

int n;
struct lin{
    int a,b;
} ls[MAXN];

int t[MAXN*2];
int ct = 1;

int l[MAXN*2];
int ans = 0;
int cnt;
void lisan(){
    sort(t+1,t+ct);
    cnt = unique(t+1,t+ct)-t-1;
    for(int i = 1;i<ct;i++){
        ls[i].a = lower_bound(t+1,t+cnt+1,ls[i].a) -t;
        ls[i].b = lower_bound(t+1,t+cnt+1,ls[i].b)-t;
    }
}

int main(){
    cin>>n;
    for(int i = 1;i<=n;i++){
        cin>>ls[i].a>>ls[i].b;
        t[ct++] = ls[i].a;
        t[ct++] = ls[i].b;
    }
    lisan();
    for(int i = 1;i<=n;i++){
        l[ls[i].a]++;
        l[ls[i].b]--;
    }
    // for(int i = 1;i<=20;i++){
    //     cout<<l[i]<<" ";    
    // }
    // cout<<endl;
    for(int i = 1;i<=cnt;i++){
        l[i] += l[i-1];
        if(l[i]!=0) ans += t[i+1]-t[i];    
    }
    cout<<ans<<endl;
    // for(int i = 1;i<=20;i++){
    //     cout<<l[i]<<" ";    
    // }
    

    //t[ls[i].a] t[ls[i].b]
    return 0;
}
2024/1/7 18:38
加载中...