Cod sursa(job #695332)

Utilizator netedu_andreiFII Andrei Netedu netedu_andrei Data 28 februarie 2012 11:56:59
Problema Ghiozdan Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.45 kb
#include<stdio.h>

long b[6000], c[6000];
long a[11000];
long sol,n,g,i,j;

int main() {
	
	freopen("rucsac.in", "r", stdin);
	freopen("rucsac.out", "w", stdout);
	int n, g;
	scanf("%ld %ld",&n,&g);
	
	for (i=1; i<=n; ++i) {
		scanf("%ld %ld", &b[i], &c[i]);
	}
	a[0]=0;
	for(i=1; i<=n; i++)
		for(j=g-b[i]; j>=0; j--) {
			if(a[j+b[i]]<a[j]+c[i])
			{
				a[j+b[i]]=a[j]+c[i];
				if(a[j+b[i]]> sol) sol = a[j+b[i]];
			}
		}
	printf("%ld", sol);
	return 0;
}