Cod sursa(job #967584)

Utilizator AstronothingIulia Comsa Astronothing Data 27 iunie 2013 23:53:55
Problema Energii Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#include <cmath>

using namespace std;

int A[1002][5002];
int MAXINT = 200000000;

int main()
{
	ifstream f("energii.in");
	ofstream f2("energii.out");

	int G, Wmin; 
	f>>G>>Wmin;

	int w[1002];
	int cost[1002];
	for(int i = 0; i < G; ++i) f>>w[i]>>cost[i];

	for(int i = 0; i <= Wmin; ++i) A[0][i] = MAXINT;
	for(int j = 0; j <= G; ++j) A[j][0] = MAXINT;

	for(int sum = 1; sum <= Wmin; ++sum)
		for(int elem = 1; elem < G; ++elem)
			if(sum <= w[elem]) 
				A[elem][sum] = min(cost[elem], A[elem-1][sum]);
			else 
				A[elem][sum] = min(A[elem-1][sum], cost[elem] + A[elem-1][sum-w[elem]]);
	

	if(A[G-1][Wmin] == MAXINT) f2<<"-1";
	else f2<<A[G-1][Wmin];
}