Pagini recente » Cod sursa (job #1298833) | Cod sursa (job #1507066) | Cod sursa (job #2665943) | Cod sursa (job #2437071) | Cod sursa (job #202807)
Cod sursa(job #202807)
#include<stdio.h>
#define INF 31005
unsigned short v[80000],nr[300],a[22222],t[80000];
int main(){
int x=0,i,j,k,n,g;
freopen("ghiozdan.in","r",stdin);
freopen("ghiozdan.out","w",stdout);
scanf("%d%d",&n,&g);
for(i=0;i<n;++i)
scanf("%d",&k),nr[k]++;
n=0;
for(i=250;i>0;--i)
for(j=0;j<nr[i];++j)
a[n++]=i;
for(i=1;i<=g;++i)
v[i]=INF;
v[0]=0;
for(i=0;i<n;++i){
k=a[i];
x+=k;
if(x>g)
x=g;
for(j=x;j>=k;--j)
if(v[j-k]+1<v[j])
v[j]=v[j-k]+1,t[j]=k;
if(v[g]<INF)
break;
}
while(v[g]==INF)
g--;
printf("%d %d\n",g,v[g]);
while(g)
printf("%d\n",t[g]),g-=t[g];
return 0;
}