Cod sursa(job #1275179)

Utilizator costty94Duica Costinel costty94 Data 24 noiembrie 2014 20:44:01
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include <fstream>
#include <cstdio>

#define MIN(a, b) ((a < b) ? a : b)

using namespace std;
std::ifstream f("energii.in", std::ifstream::in);
std::ofstream g("energii.out", std::ofstream::out);


int n, w, eg[1010], cg[1010], d[10100], i, j;

int main()
{
	
	f >> n >> w;
	for (i = 1; i <= n; i++)
		f >> eg[i] >> cg[i];
	for (i = 1; i <= w; i++)
		d[i] = 1 << 30;
	d[0] = 0;
	for (i = 1; i <= n; i++)
	{
		for (j = w; j >= 1; j--)
		{
			if (j < eg[i])
				d[j] = MIN(cg[i], d[j]);
			else
				d[j] = MIN(d[j - eg[i]] + cg[i], d[j]);
		}
	}
	if (cg[w] == 1 << 30)
		g << "-1";
	else
		g << d[w];
	return 0;
}