Pagini recente » Cod sursa (job #1531973) | Cod sursa (job #683893) | Cod sursa (job #2416052) | Cod sursa (job #1363163) | Cod sursa (job #727950)
Cod sursa(job #727950)
#include <fstream>
#include <queue>
#include <algorithm>
std::pair<unsigned int, unsigned int> oi [100000];
int main ()
{
std::ifstream input("lupu.in");
unsigned int n,distanta_max,distanta;
input >> n >> distanta_max >> distanta;
std::pair<unsigned int, unsigned int> *ptr(oi),*limit(oi + n);
do
{
input >> ptr->first >> ptr->second;
ptr->first = (distanta_max - ptr->first) / distanta + 1;
++ptr;
}
while (ptr < limit);
input.close();
std::sort(oi,oi + n);
--ptr;
unsigned int moment(ptr->first);
long long rez(0);
std::priority_queue<unsigned int> coada;
do
{
while (ptr >= oi && ptr->first == moment)
{
coada.push(ptr->second);
--ptr;
}
if (!coada.empty())
{
rez += coada.top();
coada.pop();
}
--moment;
}
while (moment);
std::ofstream output("lupu.out");
output << rez << '\n';
output.close();
return 0;
}