Cod sursa(job #679045)

Utilizator informatician28Andrei Dinu informatician28 Data 12 februarie 2012 18:22:03
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<fstream> 
#define INF 0x3f3f3f3f
using namespace std; 

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

int Cost[1001][5001];
int N, G, P[1001], C[1001];

int main()
{
	int i, j;
	
	in >> N; 
	in >> G;
	for(i = 1; i <= N; i++)
		in >> P[i] >> C[i];
	
	for(i = 1; i <= N; i++)
		Cost[i][1] = INF;
	for(i = 1; i <= G; i++)
		Cost[1][i] = INF;
	
	for(i = 2; 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] = Cost[i-1][j];
			
			if( Cost[N][G] == INF )
				out << "-1";
			else
			out << Cost[N][G];
}