Pagini recente » Cod sursa (job #1382716) | Cod sursa (job #872480) | Cod sursa (job #668218) | Cod sursa (job #1458111) | Cod sursa (job #585977)
Cod sursa(job #585977)
#include <cstdio>
#include <algorithm>
using namespace std;
#define PMAX 50050
int A[PMAX], B[PMAX], sol, n, i;
bool bere (int *A, int timp) {
int x = 0;
for (int i = 1; i <= A[0]; i++) {
x += timp / A[i];
if (x >= n) return 1;
}
return 0;
}
int cauta (int *A) {
int mid, sol, p, u;
p = 1, u = A[1] * n;
while (p <= u) {
mid = (p + u) >> 1;
if (bere (A, mid))
sol = mid, u = mid - 1;
else
p = mid + 1;
}
return sol;
}
int main () {
freopen ("fabrica.in", "r", stdin);
freopen ("fabrica.out", "w", stdout);
scanf ("%d %d %d", &n, &A[0], &B[0]);
for (i = 1; i <= A[0]; i++) scanf ("%d", &A[i]);
for (i = 1; i <= B[0]; i++) scanf ("%d", &B[i]);
sort (A + 1, A + 1 + A[0]); sort (B + 1, B + 1 + B[0]);
sol = cauta (A); printf ("%d ", sol);
sol += cauta (B); printf ("%d", sol);
return 0;
}