Pagini recente » Cod sursa (job #650679) | Cod sursa (job #1110019) | Cod sursa (job #1485580) | Cod sursa (job #1732105) | Cod sursa (job #2402065)
#include <bits/stdc++.h>
using namespace std;
const int DIM = 200005;
int arr1[DIM], arr2[DIM], val1[DIM], val2[DIM];
priority_queue<pair<int, int>,
vector<pair<int, int>>,
greater<pair<int, int>>> prq1, prq2;
int main(void) {
freopen("fabrica.in", "r", stdin);
freopen("fabrica.out", "w", stdout);
int n, na, nb;
scanf("%d %d %d", &n, &na, &nb);
for (int i = 1; i <= na; ++i) {
scanf("%d", &arr1[i]);
prq1.push(make_pair(arr1[i], i)); }
for (int i = 1; i <= nb; ++i) {
scanf("%d", &arr2[i]);
prq2.push(make_pair(arr2[i], i)); }
for (int i = 1; i <= n; ++i) {
int v, p; tie(v, p) = prq1.top(); prq1.pop();
val1[i] = v; prq1.push(make_pair(v + arr1[p], p)); }
for (int i = n; i >= 1; --i) {
int v, p; tie(v, p) = prq2.top(); prq2.pop();
val2[i] = v; prq2.push(make_pair(v + arr2[p], p)); }
int mxm = 0;
for (int i = 1; i <= n; ++i) {
mxm = max(mxm, val1[i] + val2[i]); }
printf("%d %d\n", val1[n], mxm);
return 0; }