Pagini recente » Cod sursa (job #2991121) | Cod sursa (job #416423) | Cod sursa (job #1868343) | Cod sursa (job #315683) | Cod sursa (job #470278)
Cod sursa(job #470278)
#include <fstream>
using namespace std;
int v[1<<17],a[1<<8],n,g;
ifstream in("ghiozdan.in");
ofstream out("ghiozdan.out");
void scr(int x)
{
if (!x)
return;
for (int i=1;i<=200;i++)
if (v[x]-1==v[x-i] && a[i])
{
a[i]--;
out<<i<<"\n";
scr(x-i);
break;
}
}
int main()
{
int i,j,x;
in>>n>>g;v[0]=1;
for (i=1;i<=n;i++)
{
in>>x;
a[x]++;
for (j=g-x;j>=0;j--)
if (v[j] && (v[j+x]>v[j]+1 || !v[j+x]))
v[j+x]=v[j]+1;
}
for (i=g;i;i--)
if (v[i])
break;
out<<i<<" "<<v[i]-1<<"\n";
scr(i);
return 0;
}