Pagini recente » Cod sursa (job #2384929) | Cod sursa (job #1068446) | Cod sursa (job #1653559) | Cod sursa (job #1115952) | Cod sursa (job #1804867)
#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("lupu.in");
std::ofstream FOut("lupu.out");
std::array<Oaie, 100000> Oi;
std::array<bool, 100000> 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;
}