#include<cstdio>
#include<algorithm>
#include<map>
#include<set>
#define int long long
using namespace std;
inline int read()
{
int x=0,w=1;
char ch=0;
while(ch<'0'||ch>'9')
{
if(ch=='-') w=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9')
{
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*w;
}
inline void write(int x)
{
if(x<0)
{
x=-x;
putchar('-');
}
if(x>=10) write(x/10);
putchar((x%10)^48);
}
struct info
{
int x,y;
}f[20005];
set<int> s;
map<int,int> m1,m2;
bool r[40005];
signed main()
{
int n=read(),cnt=0,ans=0;
for(int i=1;i<=n;i++)
{
int x=read(),y=read();
f[i]={x,y};
s.insert(x);
s.insert(y);
}
for(auto i=s.begin();i!=s.end();i++) m1[++cnt]=*i,m2[*i]=cnt;
m1[0]=0;
for(int i=1;i<=n;i++)
{
r[m2[f[i].x]]=1;
r[m2[f[i].y]]=1;
}
for(int i=1;i<=cnt;i++) ans+=r[i]*(m1[i]-m1[i-1]);
write(ans);
return 0;
}
评测记录