Pagini recente » Cod sursa (job #1279175) | Cod sursa (job #1356798) | Cod sursa (job #1861092) | Cod sursa (job #2741736) | Cod sursa (job #1320281)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
int n, x, l;
vector< pair<int, int> > v;
priority_queue<int> pq;
int main()
{
ifstream f("lupu.in");
ofstream g("lupu.out");
f>>n>>x>>l;
int d, a, i, pas;
long long answer=0;
v.push_back(make_pair(0,0));
for (i=1;i<=n;i++)
{
f>>d>>a;
v.push_back(make_pair((x-d)/l+1, a));
}
sort(v.begin(), v.end());
pas=v[n].first;
i=n;
while (pas)
{
while (v[i].first==pas && i>0)
{
pq.push(v[i].second);
i--;
}
if (!pq.empty())
{answer+=pq.top();
pq.pop();}
pas--;
}
g<<answer<<'\n';
}