Submission #848616

# Submission time Handle Problem Language Result Execution time Memory
848616 2023-09-13T04:55:02 Z wakandaaa Schools (IZhO13_school) C++17
75 / 100
91 ms 12120 KB
#include <bits/stdc++.h>

using namespace std;

#define file ""

#define mp make_pair
#define fi first
#define se second
#define all(x) x.begin(), x.end()

#define getbit(x, i) (((x) >> (i)) & 1)
#define bit(x) (1LL << (x))
#define popcount __builtin_popcountll

mt19937_64 rd(chrono::steady_clock::now().time_since_epoch().count());
int rand(int l, int r) {
    return l + rd() % (r - l + 1);
}

const int N = 1e6 + 5;
const int mod = (int)1e9 + 7; // 998244353;
const int lg = 25; // lg + 1
const int oo = 1e9;
const long long ooo = 1e18;

template<class X, class Y> bool mini(X &a, Y b) {
    return a > b ? (a = b, true) : false;
}
template<class X, class Y> bool maxi(X &a, Y b) {
    return a < b ? (a = b, true) : false;
}
void add(int &a, int b) {
    a += b;
    if (a >= mod) a -= mod;
    if (a < 0) a += mod;
}

int n, m, s;
pair<int, int> a[N];
int f[N], g[N];

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

    // freopen(file".inp", "r", stdin);
    // freopen(file".out", "w", stdout);

    cin >> n >> m >> s;
    for (int i = 1; i <= n; ++i) 
    	cin >> a[i].fi >> a[i].se;

    sort(a + 1, a + n + 1, [&] (pair<int, int> x, pair<int, int> y) {
    	return x.fi - x.se > y.fi - y.se;
    });

    priority_queue<int, vector<int>, greater<int> > q;

    for (int i = 1; i <= n; ++i) {
    	f[i] = f[i - 1] + a[i].fi;
    	q.push(a[i].fi);
    	if ((int) q.size() > m) {
    		f[i] -= q.top();
    		q.pop();
    	}
    }

    while (q.size()) q.pop();

    for (int i = n; i >= 1; --i) {
    	g[i] = g[i + 1] + a[i].se;
    	q.push(a[i].se);
    	if ((int) q.size() > s) {
    		g[i] -= q.top();
    		q.pop();
    	}
    }

    int res = 0;
    for (int i = m; i <= n - s; ++i) res = max(res, f[i] + g[i + 1]);

    cout << res;

    return 0;
}

/*

*/
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2392 KB Output is correct
2 Correct 1 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 1 ms 2396 KB Output is correct
5 Correct 0 ms 2396 KB Output is correct
6 Correct 1 ms 2396 KB Output is correct
7 Correct 2 ms 2396 KB Output is correct
8 Correct 2 ms 2536 KB Output is correct
9 Correct 2 ms 2652 KB Output is correct
10 Correct 2 ms 2648 KB Output is correct
11 Correct 2 ms 2652 KB Output is correct
12 Correct 2 ms 2528 KB Output is correct
13 Correct 12 ms 3420 KB Output is correct
14 Correct 22 ms 6228 KB Output is correct
15 Correct 37 ms 9296 KB Output is correct
16 Incorrect 47 ms 10452 KB Output isn't correct
17 Incorrect 64 ms 10844 KB Output isn't correct
18 Incorrect 74 ms 11072 KB Output isn't correct
19 Incorrect 81 ms 11552 KB Output isn't correct
20 Incorrect 91 ms 12120 KB Output isn't correct