Cod sursa(job #846526)

Utilizator Kira96Denis Mita Kira96 Data 2 ianuarie 2013 13:09:57
Problema Ghiozdan Scor 70
Compilator cpp Status done
Runda Lista lui wefgef Marime 0.65 kb
#include<fstream>
#include<vector>
#include<algorithm>
#define MA 1999999999
using namespace std;
ifstream f("ghiozdan.in");
ofstream g("ghiozdan.out");
int N[76000],n,G,D[76000],i,v[21000],j;
int main ()
{
	f>>n>>G;
	for(i=1;i<=G;++i)
		D[i]=MA;
	for(i=1;i<=n;++i)
	{
		f>>v[i];
	}
	sort(v+1,v+n+1);
	for(i=n;i>=1;--i)
	{
		if(v[i]<=G)
		for(j=G-v[i];j>=0;--j)
		{
			if(D[j]+v[i]<=D[j+v[i]])
			{
				D[j+v[i]]=D[j]+1;
				N[j+v[i]]=j;
			}
		}
	}
	for(i=G;i>=1;i--)
	{
		if(D[i]!=MA)
		{
			g<<i<<" "<<D[i]<<"\n";
			g<<i-N[i]<<"\n";
			while(N[i])
			{
				i=N[i];
				g<<i-N[i]<<"\n";
			}
			return 0;
		}
	}
}