Pagini recente » Cod sursa (job #117502) | Cod sursa (job #116757) | Cod sursa (job #3244473) | Cod sursa (job #671580) | Cod sursa (job #2526889)
#include <fstream>
using namespace std;
ifstream cin("ghiozdan.in");
ofstream cout("ghiozdan.out");
int gr[20005];
int nmin[75005];
int main()
{
int n,g;
cin>>n>>g;
for(int i=1;i<=n;++i)
cin>>gr[i];
for(int i=1;i<=g;++i)
nmin[i]=0x7fffffff;
for(int i=1;i<=n;++i)
for(int j=g-1;j>=0;--j)
if(nmin[j]!=0x7fffffff)
if(j+gr[i]<=g and nmin[j]+1<nmin[j+gr[i]])
nmin[j+gr[i]]=nmin[j]+1;
int ind=g;
while(nmin[ind]==0x7fffffff)
--ind;
cout<<ind<<" "<<nmin[ind]<<'\n';
int cind=nmin[ind],last=n;
while(cind)
{
--cind;
while(nmin[ind-gr[last]]>nmin[ind] and last>0)
--last;
cout<<gr[last]<<'\n';
ind=ind-gr[last];
--last;
}
return 0;
}