Cod sursa(job #585721)

Utilizator darrenRares Buhai darren Data 30 aprilie 2011 11:24:32
Problema Fabrica Scor 20
Compilator cpp Status done
Runda Algoritmiada 2011, Runda Finală, Clasele 5-9 Marime 0.76 kb
#include <fstream>
#include <algorithm>
#include <queue>
#include <vector>

using namespace std;

int N, Na, Nb;
int T1[100002], T2[100002];
long long Ta, Tb;

bool ok(long long time)
{
    long long total = 0;
    for (int i = 1; i <= Na; ++i)
        total += time / T1[i];
    return (total >= N);
}

int main()
{
    ifstream fin("fabrica.in");
    ofstream fout("fabrica.out");

    fin >> N >> Na >> Nb;
    for (int i = 1; i <= Na; ++i)
        fin >> T1[i];
    for (int i = 1; i <= Nb; ++i)
        fin >> T2[i];

    long long step = 1LL << 32;
    for (Ta = step + 1LL; step; step >>= 1)
        if (Ta - step >= 1 && ok(Ta - step))
            Ta -= step;


    fout << Ta << ' ' << Tb;

    fin.close();
    fout.close();
}