Cod sursa(job #1379920)

Utilizator mihaivasilacheMIhai Vasilache mihaivasilache Data 6 martie 2015 20:23:38
Problema Ghiozdan Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
using namespace std;
ofstream fout("ghiozdan.out");
int n,i,v[201],x,j,g[75001],gmax,pmax,k;
struct sad
{
    int p,a,nr;
}pred[75001];
int main()
{
    FILE*fin;
    fin=fopen("ghiozdan.in","r");
    fscanf(fin,"%d%d",&n,&gmax);
    for(i=1; i<=n; i++)
        fscanf(fin,"%d",&v[i]);
    for(i=1; i<=n; ++i)
        for(j=gmax-v[i]; j>=0; --j)
        {
            if(g[j+v[i]]<g[j]+v[i])
            {
                g[j+v[i]]=g[j]+v[i];
                pred[j+v[i]].nr=pred[j].nr+1;
                pred[j+v[i]].p=j;
                pred[j+v[i]].a=v[i];
                pmax=max(pmax,g[j+v[i]]);
            }
        }
    fout<<pmax<<" "<<pred[pmax].nr<<endl;
    k=pred[pmax].nr;
    for(i=1;i<=k;++i)
    {
         fout<<pred[pmax].a<<endl;
         pmax=pred[pmax].p;
    }
    return 0;
}