Cod sursa(job #1381056)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 8 martie 2015 11:26:59
Problema Ghiozdan Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
#define Gm 76000
using namespace std;
ifstream f ("ghiozdan.in"); ofstream g ("ghiozdan.out");
int n,G,x,DP[Gm],V[201],T[Gm];
int main()
{   f>>n>>G;
    for(int i=1;i<=n;++i) f>>x, V[x]++;
    DP[0]=1;
    for(int w=200;w;--w)
        if(V[w])
        for(int i=G-w;i>=0;--i)
            if(DP[i])
                for(int j=1;j<=V[w] && i+j*w<=G && !DP[i+j*w];++j) {DP[i+j*w]=DP[i]+j; T[i+j*w]=w;}
    for (int i = G; i >= 1; --i)
        if(DP[i])
            {   g<<i<<' '<<DP[i]-1<<'\n';
                while(i) {g<<T[i]<<'\n'; i-=T[i];}
                break;
            }
    g.close(); return 0;
}