Pagini recente » Cod sursa (job #2498779) | Cod sursa (job #2378290) | Cod sursa (job #292322) | Cod sursa (job #486224) | Cod sursa (job #1322119)
// FMI - Grupa 135 - Semigrupa 2 - Hareza Andrei
// Include
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
// Definitii
#define pii pair<int, int>
// Constante
const int sz = 100001;
// Variabile
ifstream in("lupu.in");
ofstream out("lupu.out");
int num, maxDist, jump;
int sum;
pii sheep[sz];
priority_queue<int> heap;
// Main
int main()
{
in >> num >> maxDist >> jump;
for(int i=1 ; i<=num ; ++i)
{
in >> sheep[i].first >> sheep[i].second;
if(sheep[i].first > maxDist)
--i, --num;
}
sort(sheep+1, sheep+num+1, greater<pii>());
for(int currentRange=(maxDist%jump)+1-jump ; currentRange<=maxDist ; currentRange+=jump)
{
while(num && sheep[num].first < currentRange+jump)
heap.push(sheep[num--].second);
if(heap.empty())
continue;
sum += heap.top();
heap.pop();
}
out << sum << '\n';
in.close();
out.close();
return 0;
}