Pagini recente » Cod sursa (job #2797332) | Cod sursa (job #2938017) | Cod sursa (job #3205015) | Cod sursa (job #457237) | Cod sursa (job #18293)
Cod sursa(job #18293)
#include<fstream.h>
int g,n,gr[1500],sol[1500],p,max=0,nr,s=0,c[1500];
ifstream f("ghiozdan.in");
ofstream l("ghiozdan.out");
void back(int k)
{int i;
if(k==p+1)
{s=0;
for(int i=1;i<=p&&s<=g;i++)
s=s+gr[sol[i]];
if(s<=g&&max<s)
{max=s;
nr=p;
for(i=1;i<=nr;i++)
c[i]=gr[sol[i]];}
}
else
{if(k>1) sol[k]=sol[k-1];
else sol[k]=0;
while(sol[k]<n-p+k)
{sol[k]++ ;
back(k+1);}
}
}
void main()
{
f>>n>>g;
for(int i=1;i<=n;i++)
f>>gr[i];
f.close();
for(i=1;i<=n;i++)
{p=i;
back(1);}
l<<max<<" "<<nr<<endl;
for(i=1;i<=nr;i++)
l<<c[i]<<endl;
l.close();}