Cod sursa(job #679278)

Utilizator robertgbrrobertgbr robertgbr Data 12 februarie 2012 23:12:14
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<fstream> 
#include<algorithm>
using namespace std;
# define WMAX 10010

ifstream f("energii.in");
ofstream g("energii.out");

int Cost[WMAX][WMAX];
int N, G, P[WMAX], C[WMAX];

int main()
{
	int i, j;
	
	f >> N >> G;
	
	for(i = 1; i <= N; i++)
		f >> P[i] >> C[i];
		
	for(i = 0; i <= N; i++)
		for(j = 1; j <= G; j++)
				Cost[i][j] = 32000;
	
	for(i = 1; i <= N; i++)
		for(j = 1; j <= G; j++)
			if( P[i] <= j ){
				Cost[i][j] = min(Cost[i - 1][j], Cost[i - 1][j - P[i]] + C[i]);}
			else {
				Cost[i][j] = min( Cost[i-1][j], C[i] );}
			
			if( Cost[N][G] == 32000 ){
				g << "-1";}
			else{
			g << Cost[N][G];}
f.close();
g.close();
return 0;
}