Cod sursa(job #1804988)

Utilizator victorungu99Victor Gabriel Ungureanu victorungu99 Data 13 noiembrie 2016 12:52:13
Problema Lupul Urias si Rau Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <algorithm>
#include <array>
#include <fstream>
#include <limits>

struct Oaie
{
	inline Oaie(void) : Dist(-1), Lana(-1) {}
	friend bool operator<(const Oaie& lhs, const Oaie& rhs) { return lhs.Lana < rhs.Lana; }
	std::int32_t Dist, Lana;
};

int main()
{
	std::ifstream FIn("bleach.in");
	std::ofstream FOut("bleach.out");

	std::array<Oaie, 1000000> Oi;
	std::array<bool, 1000000> Folosit = { false };
	std::int32_t N, X, L, S = 0, CurDist = 0;

	FIn >> N >> X >> L;
	for (std::int32_t i = 0; i < N; i++)
		FIn >> Oi[i].Dist >> Oi[i].Lana;

	std::sort(Oi.rbegin(), Oi.rend());

	for (std::int32_t i = 0; i < N; i++)
	{
		if (Oi[i].Dist + CurDist <= X)
		{
			Folosit[i] = true;
			S += Oi[i].Lana;
			CurDist += L;
		}
	}

	FOut << S;
	return EXIT_SUCCESS;
}