Pagini recente » Cod sursa (job #2676712) | Cod sursa (job #3264093) | Cod sursa (job #108010) | Cod sursa (job #2549930) | Cod sursa (job #2724778)
#include <bits/stdc++.h>
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
int n, l, d, x, puf[100005], stratMax;
map <int, vector<int>> v;
priority_queue <int> q;
long long sol;
int main()
{
f >> n >> x >> l;
for(int i = 1; i <= n; i++)
{
f >> d >> puf[i];
if(d <= x)
{
int stratAct = (x - d) / l;
v[stratAct].push_back(i);
stratMax = max(stratAct, stratMax);
}
}
for(int i = stratMax; i >= 0; i--)
{
for(auto k : v[i])
q.push(k);
if(!q.empty())
{
sol += puf[q.top()];
q.pop();
}
}
g << sol;
return 0;
}