Cod sursa(job #1428312)

Utilizator gabi.cristacheGabi Cristache gabi.cristache Data 4 mai 2015 01:37:58
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <algorithm>

#define Inf 12345678
#define MaxG 1005
#define MaxW 5005

using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");

int dp[MaxW], G, W, eg, cg;

int min(int a, int b) {
	return a < b ? a : b;
}

int main() {
	fill(dp, dp + MaxW, Inf);
	dp[0] = 0;

	fin >> G >> W;

	for (int i = 1; i <= G; ++i) {
		fin >> eg >> cg;
		for (int j = W - 1; j >= 0; --j) {
			if (dp[j] != Inf) {
				int index = j + eg;
				if (index > W)
					index = W;
		
				if (dp[index] > dp[j] + cg)
					dp[index] = dp[j] + cg;
			}
		}
	}

	int minn = Inf;
	for (int i = W; i < MaxW; ++i)
		minn = min(minn, dp[i]);
	
	if (minn == Inf)
		minn = -1;

	fout << minn << '\n';

	return 0;
}