Cod sursa(job #1223810)

Utilizator Narcis_NeculaNecula Narcis Narcis_Necula Data 28 august 2014 21:55:07
Problema Ghiozdan Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <cstdio>
FILE*f=fopen("ghiozdan.in","r");
FILE*h=fopen("ghiozdan.out","w");
int a[201],v[75001],d[75001];
int main()
{
    int n,g;
    fscanf(f,"%d%d",&n,&g);
    for ( int i=1;i<=n;++i )
    {
        int e;
        fscanf(f,"%d",&e);
        ++a[e];
        }
        v[0]=1;
        for ( int i=200;i>=1;--i )
        if ( a[i]!=0 )
        for ( int j=g-i;j>=0;--j )
        if ( v[j]!=0 )
        {
            for ( int k=1;k<=a[i]&&i*k+j<=g;++k )
            {
                if ( v[i*k+j]!=0 )continue;
                v[i*k+j]=v[i*(k-1)+j]+1;
                d[i*k+j]=i;
                }
                }
                int r;
                for ( int i=g;i>=1;--i )
                if ( v[i]!=0 )
                {
                    r=i;
                     break;
                     }
                     fprintf(h,"%d %d\n",r,v[r]-1);
                     while ( r!=0 )
                     {
                         fprintf(h,"%d\n",d[r]);
                         r-=d[r];
                         }
                          return 0;
                          }