Pagini recente » Cod sursa (job #1656836) | Clasament baia_mare_b4 | Cod sursa (job #177619) | Cod sursa (job #1260295) | Cod sursa (job #1259079)
#include <fstream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
bool comp (pair<long long, long long> x, pair<long long, long long> y)
{
return x.first>y.first;
}
int main()
{
ifstream in ("lupu.in");
ofstream out ("lupu.out");
long long n, x, l, D, L, i, tm=0;
long long cl = 0;
vector<pair<long long, long long> > oi;
priority_queue <long long> 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);
long long 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;
}