Pagini recente » Cod sursa (job #2833786) | Cod sursa (job #1026100) | Cod sursa (job #1739857) | Cod sursa (job #87436) | Cod sursa (job #2292468)
#include<fstream>
#include <iostream>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std;
struct oaie
{
int distanta,lana;
oaie(int _dis=0,int _lan=0)
{
distanta=_dis;
lana=_lan;
}
bool operator<(oaie &b)const{
return distanta<b.distanta;
}
};
int main()
{
ifstream in("lupu.in");
ofstream out("lupu.out");
int N,X,L;
in>>N>>X>>L;
vector<oaie> oi;
for(int i=0; i<N; i++)
{
int aux1,aux2;
in>>aux1>>aux2;
oi.push_back(oaie(aux1,aux2));
}
sort(oi.begin(),oi.end());
priority_queue<int> selectate;
long long suma=0;
int posi=X%L;
int pozitie=0;
while(posi<=X&&pozitie<N){
if(oi[pozitie].distanta<=posi){
for(;pozitie<N&&oi[pozitie].distanta<=posi;pozitie++){
selectate.push(oi[pozitie].lana);
}
suma+=selectate.top();
selectate.pop();
}
posi+=L;
}
out<<suma;
in.close();
out.close();
return 0;
}