Cod sursa(job #2483782)

Utilizator 1chiriacOctavian Neculau 1chiriac Data 30 octombrie 2019 11:30:57
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.53 kb
#include <cstdio>

using namespace std;
int n,g,v[10003],v1[10003],dinamica[100003],maxim1;
int maxim (int nr1,int nr2)
{
	if(nr1>nr2)
		return nr1;
	return nr2;
}
int main ()
{
	freopen("rucsac.in","r",stdin);
	freopen("rucsac.out","w",stdout);
	scanf("%d%d", &n, &g);
	for(int i=1;i<=n;++i)
		scanf("%d%d", &v[i], &v1[i]);
	for(int i=1;i<=n;++i)
		for(int j=g;j-v[i]>=0;--j)
			dinamica[j]=maxim(dinamica[j-v[i]]+v1[i],dinamica[j]);
	for(int i=1;i<=g;++i)
		if(dinamica[i]>maxim1)
			maxim1=dinamica[i];
	printf("%d", maxim1);
	return 0;
}