Pagini recente » Cod sursa (job #1724036) | Cod sursa (job #861747) | Cod sursa (job #2677043) | Cod sursa (job #2324659) | Cod sursa (job #1788754)
#include <fstream>
#include <algorithm>
#define lim 75005
#define gr 205
using namespace std;
ifstream fin ("ghiozdan.in");
ofstream fout("ghiozdan.out");
int n,g,d[lim],b[lim],fr[gr],ob,i,j,k;
int main()
{
fin >> n >> g;
for (i=1;i<=n;i++)
{
fin >> ob;
fr[ob]++;
}
d[0]=1;
for (k=g;k>=1;k--)
{
if (fr[k])
{
for (i=g-k ; i>=0 ; i-- )
{
if (d[i])
{
for (j=1 ; j<=fr[k] && i+j*k<=g && d[i+j*k]==0 ; j++ )
{
d[i+j*k]=d[i]+j;
b[i+j*k]=k;
}
}
}
}
}
for (i=g;i>=1;i--)
{
if (d[i]!=0)
{
fout << i <<' '<<d[i]-1<<'\n';
while (i)
{
fout << b[i]<<'\n';
i-=b[i];
}
}
}
return 0;
}