Cod sursa(job #278525)

Utilizator Omega91Nicodei Eduard Omega91 Data 12 martie 2009 13:06:12
Problema Energii Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <cstdio>
#include <algorithm>

struct el {
	int u, d;
};

inline bool comp(el a, el b)
{ return a.u * b.d > a.d * b.u; }

int main()
{
	const int NMAX = 1002;
	int N, W, i, e, c;
	el frac[NMAX];
	freopen("energii.in", "r", stdin);
	freopen("energii.out", "w", stdout);
	scanf("%d %d\n", &N, &W);
	for (i = 0; i != N; ++i) {
		scanf("%d %d", &e, &c);
		frac[i].u = e;
		frac[i].d = c;
	}
	std::sort(frac, frac + N, comp);
	e = c = 0;
	for (i = 0; i != N && e < W; ++i) {
		e += frac[i].u;
		c += frac[i].d;
	}
	if (e < W) c = -1;
	printf("%d\n", c);
	return 0;
}