Cod sursa(job #1428310)

Utilizator gabi.cristacheGabi Cristache gabi.cristache Data 4 mai 2015 01:33:34
Problema Energii Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#include <algorithm>

#define Inf 12345678
#define MaxG 1005
#define MaxW 500000

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 = MaxW - 1; j >= 0; --j) {
			if (dp[j] != Inf && j + eg < MaxW && dp[j + eg] > dp[j] + cg) {
				dp[j + eg] = 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;
}