听说灌水区人多...
查看原帖
听说灌水区人多...
1045201
shortintlonglong楼主2024/1/21 16:32

题目链接

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 2e6 + 10;
int maxn = 1e6;
int a[N];
long long f[N];
int main () {
    int n, k;
    cin >> n >> k;
    for (int i = 1; i <= n; i ++) {
        int x;
        cin >> x;
        a[x + maxn] ++;
    }
    for (int i = 1; i <= maxn * 2; i ++) {
        f[0] = 1ll * a[i] * i;
    }
    int l = 0, r = n;
    for (int i = 1; i <= maxn * 2; i ++) {
        l += a[i - 1];
        f[i] = f[i - 1] + l - r; 
        r -= a[i];
    }
    sort(f, f + maxn * 2 + 1);
    long long ans = 0;
    for (int i = 0; i < k; i ++) ans += f[i];
    cout << ans;
    return 0;
}

2024/1/21 16:32
加载中...