Pagini recente » Cod sursa (job #2474522) | Cod sursa (job #597668) | Cod sursa (job #692759) | Cod sursa (job #2919424) | Cod sursa (job #2185203)
#include <fstream>
#include <algorithm>
#define NMAX 75007
using namespace std;
ifstream fin("ghiozdan.in");
ofstream fout("ghiozdan.out");
int b[NMAX], a[NMAX], c[NMAX];
int G, n, x;
int main(){
fin>>n>>G;
for(int i=1;i<=n;++i){
fin>>x;
b[x]++;
}
a[0]=1;
int Max=0;
for(int i=200;i>=1;i--)
if(b[i])
for(int j=G-i;j>=0;j--)
if(a[j])
for(int k=1;k<=c[i] && j+k*i<=G && !a[j+k*i];++k){
a[j+k*i]=a[j]+k;
c[j+k*i]=i;
Max=max(Max,j+k*i);
}
fout <<Max<<" "<<a[Max]-1<<"\n";
for(int i=Max;i>0;i-=c[i])
fout <<c[i]<<"\n";
return 0;
}