Cod sursa(job #541200)

Utilizator EugenStoicaEugen Stoica EugenStoica Data 24 februarie 2011 21:31:55
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<fstream>
#define NM 100024

using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");

struct gen
{
	int eg, cg;
};

gen g[1024];
int G,W,b[1024][5120];

gen a[1010];
int main()
{
	fin>>G>>W;
	for(int i=1;i<=G;i++) fin>>a[i].eg>>a[i].cg;
	for(int i=1;i<=W;i++) b[0][i]=NM;
	for(int i=1;i<=G;i++)
	   for(int j=1;j<=W;j++)
            if(a[i].eg > j) b[i][j] = min(a[i].cg, b[i-1][j]);
		    else b[i][j] = min(b[i-1][j], a[i].cg + b[i-1][j-a[i].eg]);
	if(b[G][W]!=NM)
	{
        fout<<b[G][W];
        return 0;
    }
	fout<<-1;
	return 0;
}