Pagini recente » Cod sursa (job #2323881) | Cod sursa (job #1991761) | Cod sursa (job #953139) | Cod sursa (job #2548413) | Cod sursa (job #1442463)
#include <cstdio>
#include <set>
using namespace std;
FILE *f = fopen( "fabrica.in", "r" );
FILE *g = fopen( "fabrica.out", "w" );
const int MAX = 100010;
multiset< pair<int, int> > Q;
int na, nb;
int a[MAX], b[MAX];
int N;
int T1, T2;
void Read();
void SolveTime( int a[MAX] );
int main()
{
Read();
fprintf( g, "%d\n%d\n", T1, T2 );
fclose(f);
fclose(g);
return 0;
}
void Read()
{
int i;
fscanf( f, "%d%d%d", &N, &na, &nb );
for ( i = 1; i <= na; i++ )
{
fscanf( f, "%d", &a[i] );
Q.insert( pair<int, int>( a[i], a[i] ) );
}
SolveTime( a );
Q.clear();
for ( i = 1; i <= nb; i++ )
{
fscanf( f, "%d", &b[i] );
Q.insert( pair<int, int>( b[i], b[i] ) );
}
SolveTime( b );
for ( i = 1; i <= N; i++ )
{
T2 = max( T2, a[i] + b[N - i + 1] );
}
T1 = a[N];
}
void SolveTime( int a[MAX] )
{
int i;
pair<int, int> x;
for ( i = 1; i <= N; i++ )
{
pair<int, int> x = *(Q.begin());
a[i] = x.first;
// x = Q.begin().second;
Q.erase(Q.begin());
Q.insert( pair<int, int>( x.first + x.second, x.second ) );
}
}