Pagini recente » Cod sursa (job #3135843) | Cod sursa (job #282653) | Cod sursa (job #1718262) | Cod sursa (job #2073003) | Cod sursa (job #956498)
Cod sursa(job #956498)
#include <algorithm>
#include <cstdio>
#include <iostream>
#include <queue>
#define fi first
#define se second
using namespace std;
const int MAXN=100010;
int N,A,B;
int ar[MAXN];
int dn[MAXN][101];
int f( int pl , int lf ){
if( pl==A )
return ar[pl]*lf;
if( lf==0 )
return 0;
int &rev=dn[pl][lf];
if( rev )
return rev;
rev=1e8;
for( int i=0 ; i<=lf ; i++ )
rev=min(rev,max(i*ar[pl],f(pl+1,lf-i)));
return rev;
}
int main(){
freopen("fabrica.in","r",stdin);
freopen("fabrica.out","w",stdout);
scanf(" %d %d %d",&N,&A,&B);
for( int i=1 ; i<=A ; i++ )
scanf(" %d",ar+i);
sort(ar+1,ar+A+1);
int a=f(1,N);
printf("%d %d\n",a,a*2);
return 0;
}