Pagini recente » Cod sursa (job #89510) | Cod sursa (job #1717383) | Cod sursa (job #3206356) | Cod sursa (job #2915610) | Cod sursa (job #2361707)
#include <fstream>
#define GMAX 75005
using namespace std;
ifstream fin("ghiozdan.in");
ofstream fout("ghiozdan.out");
int f[GMAX],v[GMAX],sol[GMAX];
int main()
{
int N,G,i,j,k,x;
fin>>N>>G;
for(i=1;i<=N;++i)
{
fin>>x;
f[x]++;
}
v[0]=1;
for(i=200;i>=1;--i)
{
if(f[i]!=0)
{
for(j=G-i;j>=0;--j)
{
if(v[j]!=0)
{
for(k=1;k<=f[i] && j+k*i<=G && v[j+k*i]==0;++k)
{
v[j+i*k]=v[j]+k;
sol[j+k*i]=i;
}
}
}
}
}
i=G;
while(v[i]==0)
i--;
fout<<i<<" "<<v[i]-1<<"\n";
while(i>0)
{
fout<<sol[i]<<"\n";
i=i-sol[i];
}
return 0;
}