Cod sursa(job #3352968)

Utilizator xXoctavianXxStanescu Matei Octavian xXoctavianXx Data 3 mai 2026 00:27:56
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda cerc-acs-02-05-26 Marime 0.84 kb
#include <bits/stdc++.h>

using namespace std;

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

// #define cin fin
// #define cout fout
#define int long long

#define inf INT_MAX

const int gmax = 1005; // generatorare
const int wmax = 15005; // energie

int e[gmax], c[gmax];

int dp[wmax];
int g, w;

int32_t main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	cin >> g >> w;

	for(int i = 1; i <= g; i ++) {
		cin >> e[i] >> c[i];
	}
	for(int j = 0; j < wmax; j++) {
		dp[j] = inf;
	}

	dp[0] = 0;
	for(int i = 1; i <= g; i ++) {
		for(int j = w; j >= 0; j--) {
			if(j >= e[i]) {
				dp[j] = min(dp[j], dp[j - e[i]] + c[i]);
			} else {
				dp[j] = min(dp[j], c[i]);
			}
		}
	}

	int min_cost = inf;
	for(int j = w; j < wmax; j++) {
		min_cost = min(min_cost, dp[j]);
	}
	cout << ((min_cost == inf) ? -1 : min_cost) << "\n";

	return 0;
}