# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
90723 | YottaByte | Schools (IZhO13_school) | C++14 | 269 ms | 12224 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <algorithm>
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
#define pb push_back
#define mk make_pair
#define fr first
#define sc second
#define ll long long
int n, m, s;
vector < pair < int, int > > v1, v2;
priority_queue < int > pq;
priority_queue < int > q;
ll count(vector < pair < int, int > > v, priority_queue < int > q)
{
ll res = 0;
for(int i = 0; i < m; i++)
{
res += v[i].fr;
}
for(int i = 0; i < s; i++)
{
res += q.top();
q.pop();
}
return res;
}
ll count1(vector < pair < int, int > > v, priority_queue < int > q)
{
ll res = 0;
for(int i = 0; i < m; i++)
{
res += q.top();
q.pop();
}
for(int i = 0; i < s; i++)
{
res += v[i].fr;
}
return res;
}
main()
{
cin >> n >> m >> s;
for(int i = 1; i <= n; i++)
{
int x, y;
cin >> x >> y;
v1.pb( { x, y } );
}
//puts("");
sort(v1.rbegin(), v1.rend());
for(int i = m; i < n; i++)
pq.push( v1[i].sc );
int ans1 = count(v1, pq);
for(int i = 0; i < n; i++)
swap(v1[i].fr, v1[i].sc);
//for(int i = 0; i < n; i++)
//cout << v1[i].fr << " " << v1[i].sc << endl;
//puts("");
sort(v1.rbegin(), v1.rend());
for(int i = s; i < n; i++)
q.push( v1[i].sc );//, cout << v1[i].sc << endl;
int ans2 = count1(v1, q);
cout << max(ans1, ans2);
}
/*
3 1 1
5 2
4 1
6 4
7 2 3
9 8
10 6
3 5
1 7
5 7
6 3
5 4
*/
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |