Pagini recente » Cod sursa (job #2598617) | Cod sursa (job #699506) | Cod sursa (job #778696) | Cod sursa (job #300884) | Cod sursa (job #1259082)
#include <fstream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
bool comp (pair<int, int> x, pair<int, int> y)
{
return x.first>y.first;
}
int main()
{
ifstream in ("lupu.in");
ofstream out ("lupu.out");
int n, x, l, D, L, i, tm=0;
long long cl = 0;
vector<pair<int, int> > oi;
priority_queue <int> que;
in>>n>>x>>l;
for (i=0; i<n; i++)
{
in>>D>>L;
if(D <= x)
{
oi.push_back(make_pair((x-D)/l, L));
if ((x-D)/l > tm)
tm = (x-D)/l;
}
}
sort(oi.begin(), oi.end(), comp);
int j=0;
for(i=tm; i>=0; i--)
{
while(oi[j].first == i && j<oi.size())
que.push(oi[j++].second);
if(!que.empty())
{
cl+=que.top();
que.pop();
}
}
out<<cl;
return 0;
}