답안 #638112

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
638112 2022-09-04T15:52:46 Z tvladm2009 학교 설립 (IZhO13_school) C++14
75 / 100
224 ms 18180 KB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef long double ld;

const int MAX_N = 3 * 1e5;

ll a[MAX_N + 1], b[MAX_N + 1], pref[MAX_N + 1], suf[MAX_N + 1];
pair<ll, ll> c[MAX_N + 1];
multiset<ll> DS;

int n, m, s;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    cin >> n >> m >> s;
    for (int i = 1; i <= n; i++) {
        cin >> a[i] >> b[i];
    }

    for (int i = 1; i <= n; i++) {
        c[i] = make_pair(b[i] - a[i], i);
    }
    sort(c + 1, c + n + 1);
    int sum = 0;
    for (int i = 1; i <= m; i++) {
        DS.insert(a[c[i].second]);
        sum += a[c[i].second];
    }
    pref[m] = sum;
    for (int i = m + 1; i <= n; i++) {
        DS.insert(a[c[i].second]);
        sum += a[c[i].second];
        sum -= *DS.begin();
        DS.erase(DS.begin());
        pref[i] = sum;
    }
    DS.clear();
    sum = 0;
    for (int i = n - s + 1; i <= n; i++) {
        DS.insert(b[c[i].second]);
        sum += b[c[i].second];
    }
    suf[n - s + 1] = sum;
    for (int i = n - s; i >= 1; i--) {
        DS.insert(b[c[i].second]);
        sum += b[c[i].second];
        sum -= *DS.begin();
        DS.erase(DS.begin());
        suf[i] = sum;
    }

    ll ans = 0;
    for (int i = 0; i <= n; i++) {
        ans = max(ans, (ll)pref[i] + suf[i + 1]);
    }
    cout << ans;

    return 0;
}

# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 0 ms 340 KB Output is correct
3 Correct 0 ms 340 KB Output is correct
4 Correct 0 ms 340 KB Output is correct
5 Correct 0 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 2 ms 600 KB Output is correct
8 Correct 2 ms 724 KB Output is correct
9 Correct 3 ms 724 KB Output is correct
10 Correct 2 ms 724 KB Output is correct
11 Correct 2 ms 596 KB Output is correct
12 Correct 2 ms 724 KB Output is correct
13 Correct 20 ms 3220 KB Output is correct
14 Correct 36 ms 4740 KB Output is correct
15 Correct 59 ms 7988 KB Output is correct
16 Incorrect 129 ms 14792 KB Output isn't correct
17 Incorrect 154 ms 14028 KB Output isn't correct
18 Incorrect 183 ms 14548 KB Output isn't correct
19 Incorrect 211 ms 15724 KB Output isn't correct
20 Incorrect 224 ms 18180 KB Output isn't correct