Cod sursa(job #541158)

Utilizator EugenStoicaEugen Stoica EugenStoica Data 24 februarie 2011 21:08:54
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<fstream>
#include<limits.h>

using namespace std;

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

struct gen
{
	int eg, cg;
};

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

int main()
{
	fin>>G>>W;
	for(int i=1;i<=G;i++) fin>>g[i].eg,fin>>g[i].cg;
		
	for(int i=1;i<=W;i++) m[0][i]=INT_MAX;
		
	for(int i=1;i<=G;i++)
		for(int j=1;j<=W;j++)
			if(g[i].eg > j) m[i][j] = min(g[i].cg, m[i-1][j]);
			else m[i][j] = min(m[i-1][j], m[i-1][g[i].cg + j-g[i].eg]);
			
	if(m[G][W]!=INT_MAX)
	{
		fout<<m[G][W]<<'\n';
		return 0;
    }
	fout<<-1<<'\n';
	return 0;
}