#include<bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
struct Node{
int l, r;
friend bool operator < (Node x, Node y){
return x.r < y.r;
}
}a[N];
int n, maxn = -1;
signed main(){
cin >> n;
for(int i = 1; i <= n; i ++) cin >> a[i].l >> a[i].r, a[i].r --;
sort(a + 1, a + n + 1);
for(int i = 1; i <= n; i ++){
int sum = 0;
Node last = {0, 0};
for(int j = 1; j <= n; j ++){
if(j == i) continue;
if(a[j].l > last.r) sum += a[j].r - a[j].l + 1;
else sum += a[j].r - min(a[j].l, last.l) + 1 - (last.r - last.l + 1);
last = a[j];
}
maxn = max(maxn, sum);
}
cout << maxn;
return 0;
}
把错的点下下来了,发现差距好多,不知道代码哪里错了QWQ