Pagini recente » Cod sursa (job #2146624) | Cod sursa (job #1842319) | Cod sursa (job #929921) | Cod sursa (job #2981580) | Cod sursa (job #2292429)
#include <bits/stdc++.h>
using namespace std;
struct oaie{
int distanta,lana;
oaie(int _dis=0,int _lan=0){
distanta=_dis;
lana=_lan;
}
bool operator<(oaie b)const{
if(lana<b.lana)return true;
return false;
}
};
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));
}
priority_queue<int> selectate;
int suma=0;
int nr_iter=X/L;
for(int i=0;i<=nr_iter;i++){
for(vector<oaie>::iterator iter=oi.end()-1;iter!=oi.begin();iter--){
if((*iter).distanta<=X%L+i*L){
selectate.push((*iter).lana);
oi.erase(iter);
}
}
if(!oi.empty()){
if(oi[0].distanta<X%L+i*L){
selectate.push(oi[0].lana);
oi.erase(oi.begin());
}
}
if(!selectate.empty()){
suma+=selectate.top();
selectate.pop();}
}
out<<suma;
in.close();
out.close();
return 0;
}