Pagini recente » Cod sursa (job #2858818) | Cod sursa (job #353913) | Cod sursa (job #406733) | Cod sursa (job #184932) | Cod sursa (job #2292440)
#include <bits/stdc++.h>
using namespace std;
struct oaie
{
int dist,lana;
};
int N,X,L;
long long sol;
oaie T[100003];
priority_queue<int>q;
inline bool CMP(const oaie A, const oaie B)
{
return A.dist < B.dist;
}
void Citire()
{
int i;
oaie w;
ifstream fin("lupu.in");
fin>>N>>X>>L;
for(i=1;i<=N;++i)
{
fin>>w.dist>>w.lana;
T[i] = w;
}
fin.close();
}
void Solutie()
{
int i,st,dr;
st = 0;
dr = X%L;
sol=0;
for(i=1 ; dr<=X ; st=dr+1,dr+=L)
{
while(i<=N && st<=T[i].dist && T[i].dist<=dr)///le pun pe toate din acest interval in coada
{
q.push(T[i].lana);
i++;
}
if(!q.empty())
{
//cout<<q.top()<<"\n";
sol+=(q.top());
q.pop();
}
}
}
void Afisare()
{
ofstream fout("lupu.out");
fout<<sol<<"\n";
fout.close();
}
int main()
{
Citire();
sort(T+1,T+N+1,CMP);
Solutie();
Afisare();
return 0;
}