Pagini recente » Cod sursa (job #323470) | Cod sursa (job #1255026) | Cod sursa (job #336534) | Cod sursa (job #787176) | Cod sursa (job #2872282)
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define dbg(x) cout << #x <<": " << x << "\n";
using ll = long long;
ifstream fin("fabrica.in");
ofstream fout("fabrica.out");
int n;
int nrA, nrB;
vector<int> A, tA;
vector<int> B, tB;
vector<int> compute(vector<int> x) {
priority_queue < pair<int, int> , vector<pair<int, int> >, greater<pair<int, int> > > q;
vector<int> ac;
// for (auto i : x)
// cout << i << " ";
// cout << '\n';
for (auto i : x)
q.push({i, i});
for (int i = 0 ; i < n; ++i) {
auto tp = q.top();
q.pop();
ac.pb(tp.first);
q.push({tp.first + tp.second, tp.second});
}
return ac;
}
int main() {
int ans = 0;
fin >> n >> nrA >> nrB;
A.resize(nrA);
B.resize(nrB);
for (int i = 0; i < nrA; ++i)
fin >> A[i];
for (int i = 0; i < nrB; ++i)
fin >> B[i];
tA = compute(A);
tB = compute(B);
// cout << '\n';
// for (int i = 0; i < n; ++i)
// cout << tA[i] << " ";
for (int i = 0; i < n; ++i)
ans = max(ans, tA[i] + tB[n - i - 1]);
fout << tA[n - 1] << " ";
fout << ans << '\n';
return 0;
}