Cod sursa(job #882518)

Utilizator oprea1si2si3Oprea Sebastian oprea1si2si3 Data 19 februarie 2013 10:26:59
Problema Ghiozdan Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("ghiozdan.in");
ofstream out("ghiozdan.out");
int v[75050],g,n,i,j,poz[75050],contor[210],k,qq;
int main()
{
    in>>n>>g;
    for(i=1;i<=n;i++)
        {
        in>>qq;
        contor[qq]++;
        }
    v[0]=1;
   for(i=200;i>=1;i--)
        if(contor[i])
        for(j=g-i;j>=0;j--)
            if(v[j])
            for(k=1;k<=contor[i]&&(j+k*i)<=g&&!v[j+i*k];k++) {
                v[j+k*i]=v[j]+k;
                poz[j+k*i]=i;
                }

    for(i=g;!v[i];i--);
    out<<i<<" "<<v[i]-1<<'\n';
        for(;i;i-=poz[i])
                out<<poz[i]<<'\n';
    out<<'\n';
    in.close();
    out.close();
    return 0;
}