Pagini recente » Cod sursa (job #2273729) | Cod sursa (job #317591) | Cod sursa (job #2880317) | Cod sursa (job #2828001) | Cod sursa (job #18120)
Cod sursa(job #18120)
# include <stdio.h>
# define input "ghiozdan.in"
# define output "ghiozdan.out"
# define max 75019
long n,a[max],nr[max],g,i,j,ant[max],x,m,val;
int main()
{
freopen(input,"r",stdin);
freopen(output,"w",stdout);
scanf("%ld%ld",&n,&g);
a[0] = 1;
m = 0;
for(i = 1;i<=n;i++)
{
scanf("%ld",&x);
for(j = m;j>=0;j--)
{
if(a[j] && j+x<=g)
{
if(j+x>m)
m = j+x;
if(!a[j+x])
{
a[j+x] = 1;
ant[j+x] = j;
nr[j+x] = nr[j]+1;
}
else
if(nr[j+x]>nr[j]+1)
{
ant[j+x] = j;
nr[j+x] = nr[j]+1;
}
}
}
}
for(i=g;!a[i];i--);
printf("%ld %ld\n",i,nr[i]);
val = nr[i];
while(i)
{
printf("%ld\n",i-ant[i]);
i = ant[i];
--val;
}
while(val)
{
printf("0\n");
--val;
}
return 0;
}