Cod sursa(job #1089472)

Utilizator robert_stefanRobert Stefan robert_stefan Data 21 ianuarie 2014 18:40:01
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
#define IN "energii.in"
#define OUT "energii.out"
#define NMAX 1005
#define GMAX 5005

using namespace std;

ifstream in(IN);
ofstream out(OUT);

int n, energie, en[NMAX], cost[NMAX], vect1[GMAX], vect2[GMAX];

int main()
{
	int i, j;
	in>>n>>energie;
	for(i=1; i<=n; ++i)
		in>>en[i]>>cost[i];
	for(i=1; i<=n; ++i)
	{
		for(j=1; j<=energie; ++j)
			if(en[i]<=j)
				if(vect1[j] < vect1[j-en[i]] + cost[i])
					vect2[j] = vect1[j-en[i]] + cost[i];
				else
					vect2[j] = vect1[j];
			else
				vect2[j] = vect1[j];
		for(j=1; j<=energie; ++j)
			vect1[j]=vect2[j];
	}
	out<<vect2[energie]<<'\n';
	in.close();
	out.close();
	return 0;
}