Pagini recente » Cod sursa (job #731469) | Cod sursa (job #988880) | Cod sursa (job #1199619) | Cod sursa (job #1682911) | Cod sursa (job #609631)
Cod sursa(job #609631)
#include <cstdio>
#include <fstream>
using namespace std;
int c[201],s[75000],t[75000],n,ss,g,i,j,k,mx,x;
int main ()
{
ifstream f ("ghiozdan.in");
freopen ("ghiozdan.out","w",stdout);
f>>n>>g;
for(i=1;i<=n;++i){
f>>x;
++c[x];
if(x>mx)
mx=x;}
s[0]=1;
ss=0;
for(i=mx;i;--i)
if(c[i])
for(j=g-i;j>=0;--j)
if(s[j])
for(k=1;k<=c[i]&&j+k*i<=g&&!s[j+k*i];++k){
s[j+i*k]=s[j+(k-1)*i]+1;
t[j+k*i]=i;
if(j+k*i>ss)
ss=j+k*i;
}
--s[ss];
printf("%d %d\n",ss,s[ss]);
for(i=ss;i;i-=t[i])
printf("%d\n",t[i]);
return 0;}