Cod sursa(job #874827)

Utilizator lucian666Vasilut Lucian lucian666 Data 9 februarie 2013 12:57:02
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb




#include<fstream>
#include<cstring>

#define maxn 1009
#define maxg 5009
#define INF 0x3f3f3f3f

using namespace std;
ofstream out("energii.out");

int n , g[maxn] , c[maxn] , bst[maxn][maxg] , G;

void read();
void rucsac();

int main()
{
	read();
	rucsac();
	
	
	out << ( bst[n][G] == INF ? -1 : bst[n][G] );
	
	return 0;
}


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

void rucsac()
{
	
	for ( int i=0 ;i<=n;i++)
		for ( int j=1 ;j<=G;j++)
			bst[i][j] = INF;		
		
	for ( int i=1 ; i<=n ;i++)
		for ( int j = 1 ; j<=G ; j++)
		{
			if ( g[i] <= j )
				bst[i][j] = min ( bst[i-1][j] , bst[i-1][ j - g[i] ] + c[i] );
			else
				bst[i][j] =  (  bst[i-1][j]  );
		}
}