Cod sursa(job #2864020)

Utilizator vladsipunct5555Butnrau Vlad vladsipunct5555 Data 7 martie 2022 14:55:58
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <bits/stdc++.h>
using namespace std;
#define int long long
ifstream in ("energii.in");
ofstream out ("energii.out");
pair <int, int> v[1001];
int dp[20021];
main ()
{
	int n;
	int w;
	in >> n >> w;
	for (int i = 1;i<=n;++i)
		in >> v[i].first >> v[i].second;
	for (int i = 1;i<=20020;++i)
		dp[i] = 1<<30;
	for (int i = 1;i<=n;++i)
	{
		int e = v[i].first;
		int cost = v[i].second;
		for (int j = 20020;j - e >= 0;--j)
			if (j - e == 0)
				dp[j] = min(cost, dp[j]);
			else
				dp[j] = min(dp[j - e] + cost, dp[j]);
	}
	int cost = 1<<30;
	for (int i = w;i<=20020;++i)
		cost = min (cost, dp[i]);
	if (cost == 1<<30)
		out << -1 << '\n';
	else
		out << cost << '\n';
	return 0;
}