Cod sursa(job #1028165)

Utilizator killer301Ioan Andrei Nicolae killer301 Data 13 noiembrie 2013 18:43:33
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <cstdio>

using namespace std;

int g[5001], c[5001], d[2][10001];

int mx(int x, int y)
{
	if(x>=y)
		return x;
	return y;
}
int main()
{
    freopen("rucsac.in", "r", stdin);
    freopen("rucsac.out", "w", stdout);
    int n, gtot, x=1;
    scanf("%d%d", &n, &gtot);
    for(int i=1;i<=n;i++)
		scanf("%d%d", &g[i], &c[i]);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=gtot;j++)
		{
			if(g[i]<=j)
				d[x][j]=mx(d[1-x][j-g[i]]+c[i], d[1-x][j]);
			else d[x][i]=d[1-x][j];
		}
		x=1-x;
	}
	printf("%d", d[1-x][gtot]);
    return 0;
}