Pagini recente » Cod sursa (job #2595539) | Cod sursa (job #2449498) | Cod sursa (job #316721) | Cod sursa (job #1525613) | Cod sursa (job #956496)
Cod sursa(job #956496)
#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);
printf("%d %d\n",f(1,N),1);
return 0;
}