Pagini recente » Cod sursa (job #339988) | Cod sursa (job #1503062) | Cod sursa (job #2199260) | Cod sursa (job #1233591) | Cod sursa (job #585901)
Cod sursa(job #585901)
#include <cstdio>
#include <queue>
#define mp make_pair
using namespace std;
//priority_queue <pair <int, pair <int, int> >, vector <pair <int, pair <int, int> > >, greater <pair <int, pair <int, int> > > > Ha, Hb;
const int N = 50005;
bool used[2 * N];
int n, na, nb, ta[N], tb[N], timp[2 * N];
void read() {
freopen("fabrica.in", "r", stdin);
freopen("fabrica.out", "w", stdout);
scanf("%d%d%d", &n, &na, &nb);
for (int i = 1; i <= na; ++ i)
scanf("%d", &ta[i]);
for (int i = 1; i <= nb; ++ i)
scanf("%d", &tb[i]);
}
int max(int x, int y) {
return x > y ? x : y;
}
priority_queue <pair <int, int>, vector <pair <int, int> >, greater <pair <int, int> > > Ha;
void solve_a() {
pair<int, int> tpa;
int tma = - 1;
for (int i = 1; i <= na; ++ i)
Ha.push(mp(ta[i], ta[i]));
for (int i = 1; i <= n; ++ i) {
tpa = Ha.top();
Ha.pop();
timp[i] = tpa.first;
Ha.push(mp(tpa.first + tpa.second, tpa.second));
if (timp[i] > tma)
tma = timp[i];
}
printf("%d", tma);
}
int main() {
read();
solve_a();
return 0;
}