Cod sursa(job #585659)

Utilizator loginLogin Iustin Anca login Data 30 aprilie 2011 10:46:13
Problema Fabrica Scor 20
Compilator cpp Status done
Runda Algoritmiada 2011, Runda Finală, Clasele 10-12 Marime 0.66 kb
# include <fstream>
# include <iostream>
# define DIM 50003
# define MAX 2147000000
using namespace std;
int n, na, nb, a[DIM], b[DIM], r1, r2;

int ok (int T)
{
	int nr=0;
	for(int i=1;i<=na;++i)
		nr+=T/a[i];
	if (nr>=n)return 1;
	return 0;
}

void cauta (unsigned int st, unsigned int dr)
{
	if (st==dr)
	{
		if (st<r1 && ok(r1))
			r1=st;
		return ;
	}
	unsigned int mij=(st+dr)/2;
	if (ok(mij))
	{
		r1=mij;
		cauta(st, mij);
	}
	else
		cauta (mij+1, dr);
}

int main ()
{
	ifstream fin ("fabrica.in");
	ofstream fout ("fabrica.out");
	fin>>n>>na>>nb;
	for(int i=1;i<=na;++i)fin>>a[i];
	for(int i=1;i<=nb;++i)fin>>b[i];
	cauta (1,MAX);
	fout<<r1<<" "<<r2;
	return 0;
}