Cod sursa(job #1218564)

Utilizator cojocarugabiReality cojocarugabi Data 11 august 2014 18:55:06
Problema Ghiozdan Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
# include <fstream>
# include <iostream>
using namespace std;
# define pmax 205
# define gmax 75005
ifstream fi("ghiozdan.in");
ofstream fo("ghiozdan.out");
int p[pmax],g[gmax],x[gmax],y[gmax];
int main(void)
{
    int n,G;
    fi>>n>>G;
    g[0]=1;
    int X;
    for (int i=1;i<=n;++i) fi>>X,++p[X];
    for (int i=200;i>=0;--i)
        if (p[i])
           for (int j=G-i;j>=0;--j)
              if (g[j])
                 for (int pi=1;pi<=p[i] && (j+pi*i)<=G && !g[j+pi*i];++pi)
                    g[j+pi*i]=1,
                    y[j+pi*i]=pi,
                    x[j+pi*i]=i;
    int p=G;
    while (!g[p]) --p;
    int S=y[p],f=p-x[p]*y[p];
    while (f) S+=y[f],f-=x[f]*y[f];
    fo<<p<<" "<<S<<"\n";
    for (f=p;f;f-=x[f]*y[f])
        for (int i=1;i<=y[f];++i)
            fo<<x[f]<<"\n";
    fo.close();
}