Cod sursa(job #2091581)

Utilizator Teodor.mTeodor Marchitan Teodor.m Data 19 decembrie 2017 21:06:10
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <bits/stdc++.h>

using namespace std;

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

#define INF 1e9 + 1
int dp[6010], n, w;

int main()
{
	in >> n >> w;

	for(int i = 1; i <= w; ++i)
		dp[i] = INF;

	for(int i = 1; i <= n; ++i) {
		int energy, cost;
		in >> energy >> cost;

		for(int j = w - 1; j >= 0; --j) {
			if(j + energy <= w && dp[j + energy] > dp[j] + cost)
				dp[j + energy] = dp[j] + cost;
			else
				if(j + energy > w && dp[w] > dp[j] + cost)
					dp[w] = dp[j] + cost;
		}
	}

	if(dp[w] == INF)
		out << -1;
	else
		out << dp[w];
	
	in.close(); out.close();

	return 0;
}