Cod sursa(job #1140070)

Utilizator GrandmasterSoucup Bogdan Grandmaster Data 11 martie 2014 18:30:06
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<fstream>
#include<algorithm>
using namespace std;
const int MAX = 10004;
int x[MAX], y[MAX];
int D[3][MAX * 2] = { 1 };
int pmin;
int minp(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 = 1;
		for (i = 1; i <= G; i++)
		{
			for (int cw = 1; 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]);*/
				if (cw > x[i])
					D[i - l][cw] = minp(D[i - l][cw], D[i - l][cw - x[i]] + y[i]);
				else
					D[i][cw] = minp(D[i - 1][cw], y[i]);
			}
		}
		f << D[G][W];
	}
}