Cod sursa(job #679064)

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

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

int Cost[1005][5005];
int N, G, P[1005], C[1005];

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