Cod sursa(job #2030786)

Utilizator Garen456Paun Tudor Garen456 Data 2 octombrie 2017 11:50:23
Problema Ghiozdan Scor 24
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>

using namespace std;
ifstream fin("ghiozdan.in");
ofstream fout("ghiozdan.out");
int a[205][75007];
int ct[205];
int n,g;

int main()
{  fin>>n>>g;
    int i,x,j,z,l;
    for(i=1;i<=n;++i)
    { fin>>x;
        ct[x]++;
    }

    for(i=0;i<=200;++i)
        for(j=0;j<=g;++j)
           a[i][j]=-1;

    a[0][0]=0;

     for(i=1;i<=200;++i)
        for(j=g;j>=0;--j)
            if(a[i-1][j]!=-1)
     { z=j+i; l=1; a[i][j]=a[i-1][j];
           if(ct[i])
         while(z<=g && l<=ct[i])
          {  if(a[i][z]==-1)
             a[i][z]=a[i][j]+l;
            else
                a[i][z]=min(a[i][j]+l,a[i][z]);
           ++l;
          z+=i;
          }
     }
     for(i=g;i>=0;--i)
        if(a[200][i]!=-1)
          break;

     fout<<i<<" "<<a[200][i];
    return 0;
}