Cod sursa(job #571240)

Utilizator toniobFMI - Barbalau Antonio toniob Data 4 aprilie 2011 10:40:32
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <cstdlib>
using namespace std;

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

const int N = 5003;
int n, k, v[N * 7], suma;

void citire () {
	in >> n >> k;
	
	for (int i = 1, x, y; i <= n; ++i) {
		in >> x >> y;
		suma += x;
		v[x] = y;
	}
}

void exe () {
	if (suma < k) {
		out << "-1\n";
		exit (0);
	}
	
	for (int i = 1; i <= k; ++i) {
		for (int j = i + 1; j <= k; ++j) {
			if (v[i] && v[j] && (v[i + j] > v[i] + v[j] || v[i + j] == 0)) {
				v[i + j] = v[i] + v[j];
			}
		}
	}
}

void afisare () {
	while (1) {
		if (v[k]) {
			out << v[k] << '\n';
			return;
		}
		++k;
	}
}

int main () {
	citire ();
	
	exe ();
	
	afisare ();
	
	return 0;
}