Cod sursa(job #3040179)

Utilizator amcbnCiobanu Andrei Mihai amcbn Data 29 martie 2023 14:21:08
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
/// [A][M][C][B][N] ///
#include <bits/stdc++.h>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");

const int inf = 0x3f3f3f3f;

const int nmax = 1e3;
const int wmax = 5e3;
const int gmax = 1e4;
int n, W;
int w[nmax + 1], c[nmax + 1];
int dp[gmax + wmax + 1];

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	fin >> n >> W;
	for (int i = 1; i <= n; ++i) {
		fin >> w[i] >> c[i];
	}
	fill(dp, dp + wmax + gmax + 1, inf);
	dp[0] = 0;
	for (int i = 1; i <= n; ++i) {
		for (int j = wmax + gmax; j >= w[i]; --j) {
			dp[j] = min(dp[j], dp[j - w[i]] + c[i]);
		}
	}
	int ans = inf;
	for (int i = W; i <= wmax + gmax; ++i) {
		ans = min(ans, dp[i]);
	}
	fout << (ans == inf ? -1 : ans);
}