Pagini recente » Cod sursa (job #77285) | Cod sursa (job #1144872) | Cod sursa (job #491590) | Cod sursa (job #785875) | Cod sursa (job #1184866)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>
#define nmax 100001
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
int N,X,L,t;
long long sol;
vector <int> timp[1000001];
priority_queue <int> q;
int main()
{
f >> N >> X >> L;
for (int i=0;i<N;i++)
{
int d,c;
f >> d >> c;
if (X > d)
{
int temp = (X-d) / L;
timp[temp].push_back(c);
if (temp > t) t= temp;
}
}
for (int i=t;i>=0;i--)
{
for (int j=0;j<timp[i].size();j++)
q.push(timp[i][j]);
if (!q.empty()) {sol+=q.top(); q.pop();}
}
g << sol;
return 0;
}