Cod sursa(job #3230132)

Utilizator 0021592Grecu rares 0021592 Data 19 mai 2024 12:32:21
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int dp[20010], i, j, n, w;
pair<int, int> a;
int s;
int main()
{
	in >> n >> w;
	for (i = 0; i < 20001; i++)
		dp[i] =10001000;
	for (i = 1; i <= n; i++)
	{
		in >> a.first >> a.second;
		if (a.first == 0)
			continue;
		for (j = w; j >= 1; j--)
		{
			if (dp[j] == 10001000)
				continue;
			dp[j+a.first] = min(dp[j+a.first], dp[j] + a.second);
		}
		dp[a.first] = min(dp[a.first], a.second);
	}
	i--;
	int ans = 10001000;
	for (j = w; j <= w * 2; j++)
		ans = min(ans, dp[j]);
	if (ans == 10001000)
		out << -1;
	else
		out << ans;
	return 0;
}