Pagini recente » Cod sursa (job #96608) | Cod sursa (job #2610023) | Cod sursa (job #1707767) | Cod sursa (job #1429633) | Cod sursa (job #1591994)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("ghiozdan.in");
ofstream g("ghiozdan.out");
int n,G,i,j,k,v[76000],sol[76000],t,c,fv[201],a;
vector<int> p;
int main()
{
f>>n>>G;
while(n--)f>>a,fv[a]++;
v[0]=1;
for(i=200;i;--i)if(fv[i])
for(j=G-i;j>=0;--j)if(v[j])
for(k=1;k<=fv[i]&&j+k*i<=G;++k)
{
t=j+k*i;
if (v[t])break;
sol[t]=i;
v[t]=1;
}
for (i=G;!v[i];--i);g<<i<<" ";
while(i!=0)++c,i-=sol[i];g<<c<<'\n';
for (i=G;!v[i];--i);
while(i!=0)g<<sol[i]<<'\n',i-=sol[i];
return 0;
}