Cod sursa(job #1736221)

Utilizator delia_ioanaCeapa Delia Ioana delia_ioana Data 1 august 2016 14:00:51
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<string.h>
#include<stdio.h>
#include<vector>
#include<algorithm>
 
using namespace std;
 
int main() {
	int W[100], P[100];
	freopen("rucsac.in", "r", stdin);
	freopen("rucsac.out", "w", stdout);
	
	int N, G, max = 0;
	scanf("%d %d", &N, &G);

	int Din[G + 1];
	for (int i = 0; i <= G; i ++)
		Din[i] = 0;
     
	for (int i = 0; i < N; i ++)
		scanf("%d %d", &W[i], &P[i]);

	for (int i = 0; i <= G; i ++)
		for (int j = 0; j < N; j ++)
			if (i + W[j] <= G && Din[i + W[j]] < Din[i] + P[j])
				Din[i + W[j]] = Din[i] + P[j];
	
	for (int i = 0; i <= G; i ++)
		if (Din[i] > max)
			max = Din[i];     
	
	printf("%d", max);
	return 0;
}