Cod sursa(job #679075)

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

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

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