Cod sursa(job #682991)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 19 februarie 2012 20:25:27
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <cstdio>
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;

int dp[10005][10005];
vector<int> jos,sus;
int main()
{
	int n,G,g,p;
	freopen("rucsac.in","r", stdin);
	freopen("rucsac.out","w", stdout);
	scanf("%d %d",&n,&G);
	for(int i=0;i<=G;i++)
		sus.push_back(0);
	jos.push_back(0);
	for(int i=1;i<=n;i++)
	{	
		scanf("%d %d",&g,&p);
		for(int j=1;j<=G;j++)
		{
			jos.push_back(sus.back());
			if(g<=j)
				jos.back()=max(jos.back(),sus[j-g]+p);
		}
		sus=jos;
		jos.clear();
		jos.push_back(0);
	}
	printf("%d",sus.back());

	return 0;
}