Pagini recente » Cod sursa (job #1554178) | Cod sursa (job #1962900) | Cod sursa (job #217632) | Istoria paginii runda/23zile_1/clasament | Cod sursa (job #1940977)
#include <iostream>
#include <fstream>
#include <queue>
#include <algorithm>
#include <vector>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
vector < pair <int,int> > O;
int N,X,L;
long long S;
priority_queue <int> Q;
int compare(pair <int ,int > A,pair <int ,int > B)
{
return A.first<B.first;
}
void Read()
{
fin>>N>>X>>L;
for(int i=1;i<=N;i++)
{
int a,b;
fin>>a>>b;
a=(X-a)/L;
O.push_back(make_pair(a,b));
}
sort(O.begin(),O.end(),compare);
}
void Solve()
{
int j=N-1;
for(int i=X/L;i>=0;--i)
{
while(O[j].first==i && j>=0)
{
Q.push(O[j].second);
j--;
}
if(!Q.empty())
{
S=S+Q.top();
Q.pop();
}
}
}
int main()
{
Read();
Solve();
fout<<S;
return 0;
}