Cod sursa(job #1591994)

Utilizator AeroHHorea Stefan AeroH Data 6 februarie 2016 22:33:10
Problema Ghiozdan Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
#include <vector>
using namespace std;

ifstream f("ghiozdan.in");
ofstream g("ghiozdan.out");

int n,G,i,j,k,v[76000],sol[76000],t,c,fv[201],a;
vector<int> p;

int main()
{
    f>>n>>G;
    while(n--)f>>a,fv[a]++;
    v[0]=1;
    for(i=200;i;--i)if(fv[i])
    for(j=G-i;j>=0;--j)if(v[j])
    for(k=1;k<=fv[i]&&j+k*i<=G;++k)
    {
        t=j+k*i;
        if (v[t])break;
        sol[t]=i;
        v[t]=1;
    }
    for (i=G;!v[i];--i);g<<i<<" ";
    while(i!=0)++c,i-=sol[i];g<<c<<'\n';
    for (i=G;!v[i];--i);
    while(i!=0)g<<sol[i]<<'\n',i-=sol[i];

    return 0;
}