Cod sursa(job #763556)

Utilizator lucian666Vasilut Lucian lucian666 Data 2 iulie 2012 16:28:18
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb


#include<fstream>
using namespace std;

#define NN1 1002
#define NN2 5002
#define INF 0x3f3f3f3f

ofstream out("energii.out");

int e[NN1],c[NN1];
int Din[NN1][NN2];
int G,W;

void read();
void dinamic();

int main()
{
	read();
	dinamic();
	if(Din[G][W]==INF)
		out<<-1;
	else
		out<<Din[G][W];
	return 0;
}


void read()
{
	ifstream in("energii.in");
	in>>G>>W;
	
	for(int i=1;i<=G;++i)
		in>>e[i]>>c[i];
}

void dinamic()
{
	for(int i=0;i<=G;i++)
		for(int j=1;j<=W;j++)
			Din[i][j]=INF;
		
		for(int i=1;i<=G;i++)
			for(int j=1;j<=W;j++)
				{
					if(e[i]<=j)
						Din[i][j]=min(Din[i-1][j],Din[i-1][j-e[i]] + c[i]);
					else
						Din[i][j]=min(Din[i-1][j],c[i]);
			}
}