Pagini recente » Cod sursa (job #2105184) | Cod sursa (job #333569) | Cod sursa (job #1433980) | Cod sursa (job #1799382) | Cod sursa (job #202909)
Cod sursa(job #202909)
#include<stdio.h>
#define INF 31313
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;
}