Cod sursa(job #1085366)

Utilizator Kira96Denis Mita Kira96 Data 16 ianuarie 2014 22:43:40
Problema Ghiozdan Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 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)
            if(D[j])
        for(k=1;k<=v[i]&&j+k*i<=G&&!D[j+k*i];++k)
             
            {
                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;
        }
    }
}