Cod sursa(job #846550)

Utilizator Kira96Denis Mita Kira96 Data 2 ianuarie 2013 13:56:02
Problema Ghiozdan Scor 90
Compilator cpp Status done
Runda Lista lui wefgef Marime 0.62 kb
#include<stdio.h>
#define MA 1999999999
int T[76000],n,G,D[76000],i,x,k,v[210],j;
int main ()
{
	freopen ("ghiozdan.in","r",stdin);
	freopen ("ghiozdan.out","w",stdout);
	scanf("%d%d",&n,&G);
	for(i=1;i<=n;++i)
	{
		scanf("%d",&x);
		v[x]++;
	}
	D[0]=1;
	for(i=200;i>=1;--i)
		if(v[i])
		for(j=G-i;j>=0;--j)
		for(k=1;k<=v[i]&&j+k*i<=G&&!D[j+k*i];++k)
			if(D[j])
			{
				D[j+k*i]=D[j]+k;
				T[j+k*i]=i;
			}
	for(i=G;i>=1;i--)
	{
		if(D[i])
		{
			printf("%d %d \n",i,D[i]-1);
			printf("%d \n",T[i]);
			while(i-T[i])
			{
				i-=T[i];
				printf("%d \n",T[i]);
			}
			return 0;
		}
	}
}