Cod sursa(job #956514)

Utilizator t0nyukukyusuf hakan kalayci t0nyukuk Data 3 iunie 2013 12:06:44
Problema Fabrica Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.4 kb
//TC

#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cassert>
#include <cstring>
#include <cstdio>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <list>
#include <set>
#include <map>

#define forn(a,b,c) for(int (a)=(b);(a)<=(c);(a)++)
#define forr(a,b,c) for(int (a)=(b);(a)>=(c);(a)--)
#define foreach(a,b) for( typeof( (b).begin() ) a=(b).begin(); (a)!=(b).end() ; (a)++ )
#define foreachr(a,b) for( typeof( (b).rbegin() ) a=(b).rbegin(); (a)!=(b).rend() ; (a)++ )
#define dg(x)  cerr <<#x<<':'<<x<<" "
#define dbg(x)  cerr <<#x<<':'<<x<<endl
#define SET(A,b) memset(A,b,sizeof (A) )
#define SIZE(A) ((int)(A).size())
#define ALL(A) (A).begin(),(A).end()
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define num(a) (1LL<<(a))
using namespace std;

typedef double dbl;
typedef long long Lint;
typedef pair<int,int> ii;
typedef pair<Lint,Lint> Lii;

const int MAXN = 100010;

int n,na,nb;

int A[MAXN];
int B[MAXN];

int f(int t){
	
	int res=0;
	
	forn(i,1,na){
		res+=t/A[i];
	}
	
	return res>=n;
	
}

int main(){
	
	freopen("fabrica.in","r",stdin);
	freopen("fabrica.out","w",stdout);
	
	scanf("%d %d %d",&n,&na,&nb);
	
	forn(i,1,na)
		scanf(" %d",A+i);
	forn(i,1,nb)
		scanf(" %d",B+i);
	
	int lo=0,hi=1e9,mi;
	
	while(lo<hi){
		
		mi=(lo+hi)/2;
		
		if( f(mi) )
			hi=mi;
		else
			lo=mi+1;
		
	}
	
	cout << lo << " 31" << endl;
	
	return 0;
	
}