Cod sursa(job #470278)

Utilizator mihai995mihai995 mihai995 Data 12 iulie 2010 18:00:39
Problema Ghiozdan Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#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;
}