Cod sursa(job #2974034)

Utilizator Zed1YasuoAlex Birsan Zed1Yasuo Data 2 februarie 2023 22:46:14
Problema Ghiozdan Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>

using namespace std;
ifstream f("ghiozdan.in");
ofstream g("ghiozdan.out");
int n,x,a[204],last[76000],G;
int d[76000];
int main()
{
    f>>n>>G;
    for(int i=1;i<=n;i++)
    {
        f>>x;
        a[x]++;
    }
    d[0]=1;
    for(int i=200;i>0;i--)
        if(a[i])
        {
            for(int j=G-i;j>=0;j--)
                if(d[j])
                    for(int nr=1;nr<=a[i]&&nr*i+j<=G;nr++)
                        if(!d[nr*i+j])
                        {
                            d[nr*i+j]=d[j+(nr-1)*i]+1;
                            last[nr*i+j]=i;
                        }
        }
    int cur=G+1;
    while(!d[--cur]);
    g<<cur<<" "<<d[cur]-1<<'\n';
    while(cur)
    {
        g<<last[cur]<<'\n';
        cur-=last[cur];
    }
    return 0;
}