Pagini recente » Cod sursa (job #429686) | Cod sursa (job #2043628)
#include <fstream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
const int N = 100005;
ifstream f("lupu.in");
ofstream g("lupu.out");
struct car
{
int lana;
int d;
}oi[N];
int n,x,l,nh;
long long sum = 0;
int pl[N];
priority_queue <int> h;
void coboara()
{
//g<<h[1]<<" ";
if(!h.empty())
{
sum += h.top();
h.pop();
}
}
bool cmp(car a, car b)
{
return a.d>b.d;
}
int main()
{
f>>n>>x>>l;
nh = 0 ;
for(int i = 1;i <= n; i++)
{
int t = 0;
f>>oi[i].d>>oi[i].lana;
t = (x-oi[i].d) / l;
if(oi[i].d>x)
t = -1;
oi[i].d = t;
}
sort(oi+1,oi+n+1,cmp);
int ct = 1;
for(int i = x/l;i >= 0; i--)
{
while(ct<= n && i == oi[ct].d)
{
h.push(oi[ct].lana);
ct++;
}
coboara();
}
g<<sum;
f.close();
g.close();
return 0;
}