Cod sursa(job #199593)

Utilizator ciprianfFarcasanu Alexandru Ciprian ciprianf Data 19 iulie 2008 19:04:31
Problema Ghiozdan Scor 42
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <stdio.h>
#define INF 30000
#define N 75002
int g[N],f[201],n,G,v[N];
void citeste(){
	int x;
	freopen("ghiozdan.in","r",stdin);
	freopen("ghiozdan.out","w",stdout);
	scanf("%d%d",&n,&G);
	for(int i=1;i<=n;i++){
		scanf("%d",&x);
		f[x]++;
	}
}
void solve(){
	int i,j,k;
	for(i=1;i<=G;i++)
		v[i]=INF;
	for(i=1;i<=200;i++)
		for(j=1;j<=f[i];j++)
			for(k=G;k>=0;k--)
				if(v[k]!=INF)
					if(k+i<=G &&v[k+i]>v[k]+1)
						v[k+i]=v[k]+1;
	for(i=G;i>=1;i--)
		if (v[i]!=INF){
			printf("%d %d\n",i,v[i]);
			break;
		}
}
int main(){
	citeste();
	solve();
	return 0;
}