电梯(正常)

~ 2024-10-23 20:18:50

#include<bits/stdc++.h>
using namespace std;
int n, m, a, b, pos;
long long ans = 1e18L, sum, pre[500010];
long long suf[500010], pre1[500010], suf1[500010];
int main(){

    cin >> n >> m;
    while(m--)
    {
        cin >> a >> b;
        pre[a - 1] += 2;
        suf[b + 1] += 2;
        sum += (b - a) * 2;
    }
    for(int i = n; i >= 1; i--)
    {
        pre[i] += pre[i + 1];
        pre1[i] = pre1[i + 1] + pre[i];
    }
    for(int i = 1; i <= n; i++)
    {
        suf[i] += suf[i - 1];
        suf1[i] = suf1[i - 1] + suf[i];
        if(suf1[i] + pre1[i] < ans)
        {
            pos = i;
            ans = suf1[i] + pre1[i];
        }
    }
    cout << pos << " " << ans + sum << '\n';
    return 0;
}



我们会审查剪贴板内容,并对发布不合适内容的同学进行相应的处理