Pagini recente » Cod sursa (job #2210897) | Cod sursa (job #83841) | Cod sursa (job #1458548) | Cod sursa (job #2581943) | Cod sursa (job #2517469)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("lupu.in");
ofstream cout("lupu.out");
vector <int> G[200005];
priority_queue <int> Q;
int n, x, l, pos;
long long sol;
void citire()
{
int dist, lana, tura ;
cin >> n >> x >> l;
for(int i = 1 ; i <= n ; i++)
{
cin >> dist >> lana;
if(dist <= x)
{
tura = dist / l + (dist % l > x % l) + 1;
cout << tura << ' ' << dist << ' ' << lana << '\n';
G[tura].push_back(lana);
}
}
}
void rez()
{
for(int i = 1 ; i <= x / l + 1 ; i++)
{
for(int j = 0 ; j < G[i].size() ; j++)
Q.push(G[i][j]);
if(!Q.empty())
{
sol += Q.top();
Q.pop();
}
}
cout << sol;
}
int main()
{
citire();
rez();
return 0;
}