Pagini recente » Cod sursa (job #2509887) | Cod sursa (job #2605043) | Cod sursa (job #2879432) | Cod sursa (job #2410703) | Cod sursa (job #2604688)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
ifstream in("fabrica.in");
ofstream out("fabrica.out");
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pqA;
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pqB;
int n, a, b;
int tA[100005], tB[100005];
int ansA, ansB;
int main() {
in >> n >> a >> b;
while (a--) {
int x;
in >> x;
pqA.push({ x, x });
}
while (b--) {
int x;
in >> x;
pqB.push({ x, x });
}
for (int i = 1; i <= n; i++) {
auto cA = pqA.top();
pqA.pop();
tA[i] = cA.first;
cA.first += cA.second;
pqA.push(cA);
ansA = max(ansA, tA[i]);
}
for (int i = 1; i <= n; i++) {
auto cB = pqB.top();
pqB.pop();
tB[i] = tA[n - i + 1] + cB.first;
cB.first += cB.second;
pqB.push(cB);
ansB = max(ansB, tB[i]);
}
out << ansA << ' ' << ansB;
}