Cod sursa(job #1253366)

Utilizator CosminRusuCosmin Rusu CosminRusu Data 1 noiembrie 2014 10:36:57
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
#include <iostream>
#include <string.h>
using namespace std;

const int MAXG = 1005;
const int MAXW = 5005;

int g, w, dp[MAXG][MAXW], e[MAXG], c[MAXG];

int main() {
	ifstream fin("energii.in");
	ofstream fout("energii.out");
	
	fin >> g >> w;
	for(int i = 1 ; i <= g ; ++ i)
		fin >> e[i] >> c[i];
	for(int i = 0 ; i <= g ; ++ i)
		for(int j = 1 ; j <= w ; ++ j)
			dp[i][j] = (1000000);
	for(int i = 1 ; i <= g ; ++ i) {
		for(int j = 1 ; j <= w ; ++ j) {
			if(j >= e[i]) {
				dp[i][j] = min(dp[i - 1][j], dp[i - 1][j - e[i]] + c[i]);
			} else
				dp[i][j] = min(dp[i - 1][j], c[i]);
		}
	}
	if(dp[g][w] == 1000000)
		fout << "-1\n";
	else
		fout << dp[g][w] << '\n';
}