Cod sursa(job #1425195)

Utilizator MciprianMMciprianM MciprianM Data 26 aprilie 2015 22:44:41
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#include <cstring>

using namespace std;

static const int MAXN = 1001;
static const int MAXW = 5000;
unsigned eg[MAXN], cg[MAXN];
unsigned s[MAXW * 2];

int main() {
	int g, w;
	ifstream f("energii.in");
	f >> g >> w;
	for(int i = 0; i < g; i++) {
		f >> eg[i] >> cg[i];
	}
	f.close();
	memset(s, 0x3F, sizeof(s));
	s[0] = 0;
	for(int j = 0; j < g; j++)
		for(int i = MAXW; i >= 0; i--)
			s[i + eg[j]] = min(s[i] + cg[j], s[i + eg[j]]);
	unsigned ans = s[MAXW * 2 - 1];
	for(int i = MAXW * 2 - 1; i >= w; i--) {
		ans = min(ans, s[i]);
	}
	ofstream fout("energii.out");
	fout << ans << endl;
	fout.close();
	return 0;
}