Cod sursa(job #586036)

Utilizator mottyMatei-Dan Epure motty Data 30 aprilie 2011 13:25:46
Problema Fabrica Scor 20
Compilator cpp Status done
Runda Algoritmiada 2011, Runda Finală, Clasele 10-12 Marime 0.83 kb
//20
#include <fstream>
#include <algorithm>

using namespace std;

ifstream in("fabrica.in");
ofstream out("fabrica.out");

const int N = 50005;

long long lim;

int n, a, b;
int ta[N];
int tb[N];

void Read()
{
	in >> n >> a >> b;

	for (int i = 1; i <= a; ++i)
	{
		in >> ta[i];
	}
	lim = ta[1] * n;

	for (int j = 1; j <= b; ++j)
		in >> tb[j];

	sort(ta+1, ta+a+1);
	sort(tb+1, tb+b+1);
}

bool Check(int t)
{
	int cn = n;
	for (int i = 1; cn > 0 && ta[i] <= t && i <= a; ++i)
		cn -= t / ta[i];

	return (cn <= 0);
}

int Search()
{
	long long i, step;
	for (step = 1; step <= lim; step <<= 1);
	for (i = lim; step; step >>= 1)
		if (i - step > 0 && Check(i - step))
			i -= step;

	return i;
}

int main()
{
	Read();
	int sr = Search();
	out << sr << " " << sr << "\n";

	return 0;
}