Cod sursa(job #1815463)

Utilizator woogiefanBogdan Stanciu woogiefan Data 25 noiembrie 2016 11:46:59
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
#define inf 1e9
 
using namespace std;
 
ifstream fin ("energii.in");
ofstream fout ("energii.out");
 
int G , W; 
int sol[5005];
int quan[1005] , cost[1005];
 
void read()
{
	//cin >> G >> W;
	fin >> G >> W;
	for(int i = 1 ; i <= G ; ++i)
		//cin >> quan[i] >> cost[i];
		fin >> quan[i] >> cost[i];
}
 
int main() {
	read();
	for(int i = 1 ;  i <= W ; ++i) sol[i] = inf;
	sol[0] = 0;
	for(int i = 1 ; i <= G ; ++i)
		for(int j = W ; j >= 0 ; --j)
			if(sol[j] != inf){
				if(j + quan[i] <= W)
					sol[j + quan[i]] = min(sol[j + quan[i]] , sol[j] + cost[i]);
				else 
					sol[W] = min(sol[W] , sol[j] + cost[i]);
			}
	if(sol[W] == inf) 
		//cout << -1;
		fout << -1;
	else 
		//cout << sol[W];
		fout << sol[w];
	return 0;
}