Pagini recente » Cod sursa (job #1249480) | Cod sursa (job #286242) | Cod sursa (job #490324) | Cod sursa (job #2293577) | Cod sursa (job #2433126)
#include <bits/stdc++.h>
using namespace std;
struct Proc {
int t;
int d;
};
bool operator < (Proc a, Proc b) {
return a.t > b.t;
}
int n;
const int MAX_N = 1e5;
int ans1[1 + MAX_N], ans2[1 + MAX_N];
void solve (priority_queue <Proc> p, int ans[]) {
for (int i = 1; i <= n; i++) {
Proc x = p.top ();
ans[i] = x.t;
p.pop ();
p.push ({x.t + x.d, x.d});
}
}
int main() {
freopen ("fabrica.in", "r", stdin);
freopen ("fabrica.out", "w", stdout);
int n1, n2;
cin >> n >> n1 >> n2;
priority_queue <Proc> p1, p2;
for (int i = 1; i <= n1; i++) {
int x;
cin >> x;
p1.push ({x, x});
}
for (int i = 1; i <= n2; i++) {
int x;
cin >> x;
p2.push ({x, x});
}
solve (p1, ans1);
solve (p2, ans2);
int ans = 0;
for (int i = 1; i <= n; i++)
ans = max (ans, ans1[i] + ans2[n - i + 1]);
cout << ans1[n] << " " << ans << "\n";
return 0;
}