Pagini recente » Cod sursa (job #1992314) | Cod sursa (job #1554468) | Cod sursa (job #668814) | Cod sursa (job #1119596) | Cod sursa (job #1379920)
#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;
}