Pagini recente » Cod sursa (job #2255682) | Cod sursa (job #1808102) | Cod sursa (job #1359148) | Cod sursa (job #1450830) | Cod sursa (job #1855198)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <set>
#define DIM 100010
#define INF -(1<<31)
#define f first
#define s second
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
multiset<int> heap;
multiset<int>::iterator it;
pair<int,int> v[DIM];
int n,x,l,i;
long long int s,t,q;
int main()
{
heap.insert(INF);
fin >> n >> x >> l;
for(i=1;i<=n;i++)
{
fin >> v[i].f>>v[i].s;
}
sort(v+1,v+n+1);
while(v[1].f+t+l<=x)
t+=l;
for(i=1;i<=n;i++)
v[i].f+=t;
i=1;
while(t>=0)
{
while(v[i].f-q<=x and i<=n)
{
heap.insert(-v[i].s);
i++;
}
it=heap.begin();
it++;
if(it!=heap.end())
{
s+=-(*it);
heap.erase(it);
}
q+=l;
t-=l;
}
fout << s << endl;
return 0;
}