Cod sursa(job #1108871)

Utilizator horatiu13Horatiu horatiu13 Data 16 februarie 2014 14:25:30
Problema Problema Damelor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <cstdio>
using namespace std;

#define Nmax 5002
#define Gmax 10002

FILE *fi = fopen("rucsac.in", "r");
FILE *fo = fopen("rucsac.out", "w");

int n;
int g;
int p[Nmax];
int w[Nmax];
int sol[Gmax];
int s = 0;


int maxim(int a, int b)
{
	return a > b ? a : b;
}

int main()
{
	fscanf(fi, "%d%d", &n, &g);
	for (int i = 1; i<=n; i++)
		fscanf(fi, "%d%d", &w[i], &p[i]);
	
	for (int i = 1; i <= n; i++)
	{
		for (int j = g; j >= w[i]; --j)
		{
			sol[j] = maxim(sol[j], sol[j-w[i]] + p[i]);
			if (sol[j] > s) s = sol[j];
		}
	}

	fprintf(fo, "%d\n", s);
	
	return 0;
}