Cod sursa(job #878747)

Utilizator SilviussMezei Silviu Silviuss Data 14 februarie 2013 18:45:43
Problema Ghiozdan Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("ghiozdan.in");
ofstream fout("ghiozdan.out");

int v[75001],u[75001],w[20001];

int main()
{
    short n;
    int g,x,i,j,k;
    fin>>n>>g;
    v[0]=100000;
    w[0]=100000;
    for(i=0;i<n;i++)
    {
        fin>>x;
        for(j=i;x>w[j];j--)
            w[j+1]=w[j];
        w[j+1]=x;
    }
    for(i=1;i<=n;i++)
    {
        for(j=g;j>=w[i];j--)
        {
            if(v[j]<w[i] && v[j-w[i]])
            {
                v[j]=w[i];
                u[j]=u[j-w[i]]+1;
            }
        }
    }
    for(i=g;v[i]==0;i--);
    fout<<i<<" "<<u[i]<<"\n";
    while(i)
    {
        fout<<v[i]<<"\n";
        i-=v[i];
    }
}