Pagini recente » Cod sursa (job #66897) | Cod sursa (job #3210420) | Cod sursa (job #2645869) | Cod sursa (job #811221) | Cod sursa (job #187861)
Cod sursa(job #187861)
#include <stdio.h>
#include <stdlib.h>
#define INF 1000000
#define N 20010
#define S 75010
int n,s;
int g[N],best[S];
int nrmin,x;
void scan(){
int i;
freopen("ghiozdan.in","r",stdin);
freopen("ghiozdan.out","w",stdout);
scanf("%d%d",&n,&s);
for (i=1;i<=n;++i)
scanf("%d",&g[i]);
}
int min(int a,int b){
if (a>b)
return b;
return a;
}
void knapsack(){
int i,j;
for (i=1;i<=s;++i)
best[i]=INF;
for (i=1;i<=n;++i)
for (j=s;j>=0;--j)
best[j+g[i]]=min(best[j+g[i]],best[j]+1);
for (i=s;i>=0;--i){
if (best[i]!=INF){
x=i;
nrmin=best[i];
return;
}
}
}
void print(){
printf("%d %d\n",x,nrmin);
exit(0);
}
int main(){
scan();
knapsack();
print();
}