Submission #1326816

#TimeUsernameProblemLanguageResultExecution timeMemory
1326816dungntSchools (IZhO13_school)C++20
75 / 100
78 ms6536 KiB
#include<bits/stdc++.h>
#define ll long long
#define pii pair<int, int>
#define fi first
#define se second
using namespace std;

const int N = 3e5 + 5;

int n, m, s;
pii p[N];
ll pre[N], suf[N];

bool cmp(pii a, pii b)
{
    return a.fi - a.se > b.fi - b.se;
}

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);     cout.tie(0);
    #define name "task"
    if(fopen(name".inp", "r"))
    {
        freopen(name".inp", "r", stdin);
        freopen(name".out", "w", stdout);
    }
    cin >> n >> m >> s;
    for(int i = 1; i <= n; i++)
        cin >> p[i].fi >> p[i].se;
    sort(p + 1, p + n + 1, cmp);
    priority_queue<int, vector<int>, greater<int>> pq;
    ll sum = 0;
    for(int i = 1; i <= n; i++)
    {
        pq.push(p[i].fi);
        sum += p[i].fi;
        if(pq.size() > m)
        {
            sum -= pq.top();
            pq.pop();
        }
        if(pq.size() == m)  pre[i + 1] = sum;
    }
    pq = priority_queue<int, vector<int>, greater<int>>();
    sum = 0;
    for(int i = n; i >= 1; i--)
    {
        pq.push(p[i].se);
        sum += p[i].se;
        if(pq.size() > s)
        {
            sum -= pq.top();
            pq.pop();
        }
        if(pq.size() == s) suf[i + 1] = sum;
    }
    ll ans = 0;
    for(int i = m; i <= n - s; i++)
        ans = max(ans, pre[i] + suf[i + 1]);
    cout << ans;
}

Compilation message (stderr)

school.cpp: In function 'int main()':
school.cpp:26:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   26 |         freopen(name".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
school.cpp:27:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   27 |         freopen(name".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...