Cod sursa(job #1140028)

Utilizator GrandmasterSoucup Bogdan Grandmaster Data 11 martie 2014 17:52:28
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<fstream>
#include<algorithm>
using namespace std;
const int MAX = 10004;
int x[MAX], y[MAX];
int D[2][MAX*2];
int pmax = 0;
int min(int a, int b)
{
	if (a < b)
		a = b;
	return a;
}
int main()
{
	int G, W, i, j, sumX = 0, sumY = 0, suma = 0, max = 0;
	ifstream g("energii.in");
	ofstream f("energii.out");
	g >> G >> W;
	for (i = 1; i <= G; i++)
	{
		g >> x[i];
		g >> y[i];
		suma += x[i];
	}
	if (suma < W)
		f << "-1";
	else
	{
		int l = 0;
		for (i = 1; i <= G; i++, l=1-l)
			for (int cw = 0; cw <= W; cw++)
			{
				D[1 - l][cw] = D[l][cw];
				if (x[i] <= cw)
					D[1 - l][cw] = min(D[l][cw], D[l][cw - x[i]] + y[i]);
			}
			pmax = D[l][W];
			f << pmax;
	}
}