Pagini recente » Cod sursa (job #1605158) | Cod sursa (job #337699) | Cod sursa (job #2275635) | Cod sursa (job #245216) | Cod sursa (job #2823983)
#include <fstream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
ifstream cin("lupu.in");
ofstream cout("lupu.out");
int n, x, l;
struct Oaie{
int d, l, t;
};
vector<Oaie> v;
priority_queue<int>Q;
void empty_q()
{
while(!Q.empty())
Q.pop();
}
bool cmp(Oaie a, Oaie b)
{
return a.t < b.t;
}
int main(int argc, const char * argv[]) {
cin>>n>>x>>l;
for(int i=0; i<n; i++)
{
int d, L;
cin>>d>>L;
v.push_back({d, L, 0});
v[i].t = (x - v[i].d) / l;
}
sort(v.begin(), v.end(), cmp);
int t=v[n - 1].t, i=n-1, sol=0;
while(t >= 0)
{
while(i >= 0 and t <= v[i].t)
{
Q.push(v[i].l);
i--;
}
if(!Q.empty())
sol += Q.top(), Q.pop();
t--;
}
cout<<sol;
return 0;
}