Pagini recente » Cod sursa (job #1381333) | Cod sursa (job #61645) | Cod sursa (job #285089) | Cod sursa (job #2070184) | Cod sursa (job #408841)
Cod sursa(job #408841)
#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",&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]=j+i*(k-1);
if( ns>M2 ) M2=ns;
}
}
}
}
}
}
printf("%d %d\n",M2,P[M2]);
a1=M2;
int a2=T[M2];
while( P[M2]-- )
{
printf("%d\n",a1-a2);
a1=a2;
a2=T[a2];
}
return 0;
}