#include<bits/stdc++.h>
using namespace std;
int n,dp[3000001],maxn;
struct sb
{
int l,r,las,xh;
}a[1000001],b[1000001];
bool cmp1(sb u,sb v)
{
return u.r<v.r||u.r==v.r&&u.l<v.l;
}
bool cmp2(sb u,sb v)
{
return u.l<v.l;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].l>>a[i].r;
}
sort(a+1,a+n+1,cmp1);
for(int i=1;i<=n;i++)
{
a[i].xh=i;
b[i]=a[i];
}
sort(b+1,b+n+1,cmp2);
int q=0;
for(int i=1;i<=n;i++)
{
while(a[q].r<b[i].l)
{
q++;
}
q--;
a[b[i].xh].las=q;
}
for(int i=1;i<=n;i++)
{
dp[i]=max(dp[a[i].las]+a[i].r-a[i].l+1,dp[i-1]);
}
cout<<dp[n];
return 0;
}
答案是1994719,我输出的是999999,不知道为什么