Cod sursa(job #709057)

Utilizator okros_alexandruOkros Alexandru okros_alexandru Data 7 martie 2012 17:16:59
Problema Ghiozdan Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#define NMAx 210
#define GMAx 75100
using namespace std;

int N,G,A[NMAx],V[GMAx],T[GMAx];

void citire() {
	
	int x;
	ifstream in("ghiozdan.in");
	in>>N>>G;
	
	for(int i=1;i<=N;i++) {
		in>>x;
		A[x]++;
		}
	
	in.close();
	
}
void afis() {
	
	int i;
	ofstream out("ghiozdan.out");
	
	for(i=G;!V[i];i--);
	
	out<<i<<' '<<V[i]-1<<'\n';
	
	for(;i;i-=T[i])
		out<<T[i]<<'\n';
	
	out.close();
	
}
int main() {
	
	int i,j,k;
	
	citire();
	
	V[0]=1;
	
	for(i=200;i>=1;i--)
		if(A[i])
		for(j=G-i;j>=0;j--)
			if(V[j])
			for(k=1;k<=A[i]&&(j+k*i)<=G&&!V[j+i*k];k++) {
				V[j+k*i]=V[j]+k;
				T[j+k*i]=i;
				}
	
	afis();
	
	return 0;
	
}