RT 求助
#include<bits/stdc++.h>
using namespace std;
#define rep(I,N,M) for(int I=N;I<=M;++I)
#define int long long
inline int read(void){
int a=0,f=1;char c=getchar();
while(c<'0'||c>'9') {c=='-'?f=-1:f=f;c=getchar();}
while(c>='0'&&c<='9'){a=(a<<3)+(a<<1)+(c^48);c=getchar();}
return f*a;
}
int c[40005],m;
bool f[40005];
inline int ask(int x){
return lower_bound(c+1,c+m+1,x)-c;
}
signed main(){
int n=read();
int a[n+3],b[n+3],len=0,ans=0;
rep(I,1,n){c[++m]=a[I]=read();c[++m]=b[I]=read();}
sort(c+1,c+m+1);
len=unique(c+1,c+m+1)-c-1;
rep(i,1,len){
a[i]=ask(a[i]);
b[i]=ask(b[i])-1;
rep(j,a[i],b[i])f[j]=1;
}
rep(i,1,len-1){
if(f[i]) ans+=c[i+1]-c[i];
}
cout<<ans<<endl;
return 0;
}
RE现场(