Pagini recente » Cod sursa (job #988658) | Cod sursa (job #582397) | Cod sursa (job #493680) | Cod sursa (job #495970) | Cod sursa (job #1223810)
#include <cstdio>
FILE*f=fopen("ghiozdan.in","r");
FILE*h=fopen("ghiozdan.out","w");
int a[201],v[75001],d[75001];
int main()
{
int n,g;
fscanf(f,"%d%d",&n,&g);
for ( int i=1;i<=n;++i )
{
int e;
fscanf(f,"%d",&e);
++a[e];
}
v[0]=1;
for ( int i=200;i>=1;--i )
if ( a[i]!=0 )
for ( int j=g-i;j>=0;--j )
if ( v[j]!=0 )
{
for ( int k=1;k<=a[i]&&i*k+j<=g;++k )
{
if ( v[i*k+j]!=0 )continue;
v[i*k+j]=v[i*(k-1)+j]+1;
d[i*k+j]=i;
}
}
int r;
for ( int i=g;i>=1;--i )
if ( v[i]!=0 )
{
r=i;
break;
}
fprintf(h,"%d %d\n",r,v[r]-1);
while ( r!=0 )
{
fprintf(h,"%d\n",d[r]);
r-=d[r];
}
return 0;
}