Pagini recente » Cod sursa (job #2203570) | Cod sursa (job #2158282) | Cod sursa (job #3286123) | Cod sursa (job #3202925) | Cod sursa (job #585798)
Cod sursa(job #585798)
#include <algorithm>
#include <fstream>
using namespace std;
const int Dim = 100001;
const int Inf = 0x3f3f3f3f;
int N, Na, Nb;
int texa[Dim >> 1], texb[Dim >> 1], tfa[Dim >> 1], tfb[Dim >> 1], tf[Dim];
int main() {
ifstream fin( "fabrica.in" );
ofstream fout( "fabrica.out" );
int i, j, id, mx, mn;
fin >> N;
fin >> Na, fin >> Nb;
for( i = 1; i <= Na; ++i )
fin >> texa[i];
for( i = 1; i <= Nb; ++i )
fin >> texb[i];
for( i = 1; i <= N; ++i ) {
mn = Inf;
id = 0;
for( j = 1; j <= Na; ++j )
if( tfa[j] + texa[j] < mn ) {
mn = tfa[j] + texa[j];
id = j;
}
tf[i] = tfa[id] = mn;
}
mx = -Inf;
for( i = 1; i <= Na; ++i )
mx = max( mx, tfa[i] );
//prima cerinta
fout << mx << " ";
sort( tf + 1, tf + N + 1 );
for( i = 1; i <= N; ++i ) {
mn = Inf;
id = 0;
for( j = 1; j <= Nb; ++j )
if( max( tf[i], tfb[j] ) + texb[j] < mn ) {
mn = max( tf[i], tfb[j] ) + texb[j];
id = j;
}
tfb[id] = mn;
}
mx = -Inf;
for( i = 1; i <= Nb; ++i )
mx = max( mx, tfb[i] );
//a doua cerinta
fout << mx;
fin.close();
fout.close();
return 0;
}