Pagini recente » Cod sursa (job #235147) | Cod sursa (job #422294) | Cod sursa (job #3286403) | Cod sursa (job #2147242) | Cod sursa (job #2321310)
#include <iostream>
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
struct cmp
{
bool operator ()(const int &a, const int &b)
{
return a<b;
}
};
priority_queue<int,vector<int>,cmp>Q;
pair<int,int>oi[100001];
bool comp(pair<int,int>a,pair<int,int>b)
{
return a.first<b.first;
}
int main()
{
int N,X,L,i,tmax=0,aux,sum=0;
fin>>N>>X>>L;
for(i=1;i<=N;i++)
{
fin>>oi[i].first>>oi[i].second;
oi[i].first=1+(X-oi[i].first)/L;
tmax=max(tmax,oi[i].first);
}
sort(oi+1,oi+N+1,comp);
aux=N;
for(i=tmax;i>=1;i--)
{
while(oi[aux].first == i && aux>0)
{
Q.push(oi[aux].second);
aux--;
}
if(Q.size()>0)
{
sum+=Q.top();
Q.pop();
}
}
fout<<sum;
}