Cod sursa(job #3230117)

Utilizator 0021592Grecu rares 0021592 Data 19 mai 2024 12:09:07
Problema Energii Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int dp[2][10010], i, j, n, w;
pair<int, int> a;
int s;
int main()
{
	in >> n >> w;
	for (i = 1; i <= n; i++)
	{
		in >> a.first >> a.second;
		for (j = 1; j <= 10005; j++)
		{
			dp[i % 2][j] = dp[(i - 1) % 2][j];
			if (j >= a.second)
				dp[i % 2][j] = max(dp[i % 2][j], dp[(i - 1) % 2][j - a.second] + a.first);
		}
	}
	i--;
	for (j = 1; j <= 10005; j++)
		if (dp[i % 2][j] >= w)
		{
			out << j;
			return 0;
		}
	out << -1;
	return 0;
}