Cod sursa(job #993809)

Utilizator geniucosOncescu Costin geniucos Data 4 septembrie 2013 14:46:59
Problema Ghiozdan Scor 100
Compilator cpp Status done
Runda Lista lui wefgef Marime 0.86 kb
#include<fstream>
#include<algorithm>
using namespace std;
int val,maxi,n,gm,i,j,k,nr,b[20013],v[75013],pot[75013],ap[213];
int main()
{
ifstream f("ghiozdan.in");
ofstream g("ghiozdan.out");
f>>n>>gm;
for(i=1;i<=n;i++)
{
    f>>val;
    ap[val]++;
}
pot[0]=1;
for(i=200;i>=1;i--)
    if(ap[i])
    {
        for(j=gm-i;j>=0;j--)
            if(pot[j])
            {
                for(k=1;k<=ap[i]&&k*i+j<=gm;k++)
                {
                    if(pot[j+k*i]==0)
                    {
                        pot[j+k*i]=pot[j]+k;
                        v[j+k*i]=i;
                    }
                    else break;
                }
            }
    }
for(i=gm;i>=1;i--)
    if(pot[i]) break;
maxi=i;
g<<maxi<<" "<<pot[maxi]-1<<'\n';
while(maxi)
{
    g<<v[maxi]<<'\n';
    maxi-=v[maxi];
}
f.close();
g.close();
return 0;
}