90pts求调
查看原帖
90pts求调
916636
hank0920楼主2024/8/11 15:41
#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

2024/8/11 15:41
加载中...