Cod sursa(job #2526889)

Utilizator betybety bety bety Data 19 ianuarie 2020 12:25:25
Problema Ghiozdan Scor 42
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
using namespace std;
ifstream cin("ghiozdan.in");
ofstream cout("ghiozdan.out");
int gr[20005];
int nmin[75005];
int main()
{
    int n,g;
    cin>>n>>g;
    for(int i=1;i<=n;++i)
        cin>>gr[i];
    for(int i=1;i<=g;++i)
        nmin[i]=0x7fffffff;
    for(int i=1;i<=n;++i)
    for(int j=g-1;j>=0;--j)
    if(nmin[j]!=0x7fffffff)
    if(j+gr[i]<=g and nmin[j]+1<nmin[j+gr[i]])
    nmin[j+gr[i]]=nmin[j]+1;
    int ind=g;
    while(nmin[ind]==0x7fffffff)
        --ind;
    cout<<ind<<" "<<nmin[ind]<<'\n';
    int cind=nmin[ind],last=n;
    while(cind)
    {
        --cind;
        while(nmin[ind-gr[last]]>nmin[ind] and last>0)
            --last;
        cout<<gr[last]<<'\n';
        ind=ind-gr[last];
        --last;
    }
    return 0;
}