Pagini recente » Cod sursa (job #690113) | Cod sursa (job #3249359) | Cod sursa (job #813750) | Cod sursa (job #3271606) | Cod sursa (job #2821981)
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
const int nmax=100005;
priority_queue<int>q;
struct oaie
{
int lana,timp;
bool operator<(const oaie&o) {return timp<o.timp;}
};
oaie oi[nmax];
int main()
{
int n,x,l;
long long sol=0;
fin >>n>>x>>l;
for(int i=1;i<=n;i++)
{int dist;
fin >>dist>>oi[i].lana;
oi[i].timp=(x-dist)/l;}
sort(oi+1,oi+n+1);
int p=n,t=oi[n].timp;
while(t>=0)
{while(p>0 && oi[p].timp>=t)
{q.push(oi[p].lana);
p--;}
if(!q.empty()) {sol+=q.top();
q.pop();}
t--;}
fout <<sol;
return 0;
}