Pagini recente » Cod sursa (job #1609229) | Cod sursa (job #890950) | Cod sursa (job #2714392) | Cod sursa (job #1475712) | Cod sursa (job #408855)
Cod sursa(job #408855)
#include<stdio.h>
#define GMAX 75001
int P[GMAX],V[201],T[GMAX];
//o prima versiune..
int main()
{
freopen("ghiozdan.in","r",stdin);
freopen("ghiozdan.out","w",stdout);
int N,G;
scanf("%d%d",&N,&G);
int i,M1=-1,M2=-1,a1;
for(i=1; i<=N; ++i)
{
scanf("%d\n",&a1);
++V[a1];
if( a1>M1 ) M1=a1;
}
int j,k,ns;
for( i=M1; i; --i )
{
if( V[i] )
{
for( j=G-i; j>=0; --j )
{
if( P[j] || !j )
{
for( k=1; k<=V[i]; ++k )
{
ns=j+i*k;
if( ns<=G && !P[ns] )
{
P[ns]=P[j+i*(k-1)]+1;
T[ns]=i;
if( ns>M2 ) M2=ns;
}
else
break;
}
}
}
}
}
printf("%d %d\n",M2,P[M2]);
while( M2 )
{
printf("%d\n",T[M2]);
M2-=T[M2];
}
return 0;
}