Pagini recente » Cod sursa (job #64566) | Cod sursa (job #443762) | Cod sursa (job #1204886) | Cod sursa (job #3005562) | Cod sursa (job #2601937)
#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;
}