Pagini recente » Cod sursa (job #452290) | Profil yoanaa_kiss | Cod sursa (job #3208268) | Cod sursa (job #221606) | Cod sursa (job #2132453)
#include <bits/stdc++.h>
#define INFILE "lupu.in"
#define OUTFILE "lupu.out"
#define lana first
#define dist second
using namespace std;
typedef pair<int,int> oaie;
ifstream in(INFILE);
ofstream out(OUTFILE);
int timp=0;
int N,X,L;
const int NMAX=10000;
//vector<oaie> oi;
array<oaie,NMAX> oi;
bool compDist(oaie o1, oaie o2){
return (o1.dist<=o2.dist);
}
void Read(){
in>>N>>X>>L;
for(int i=0;i<N;i++){
int D,A;
in>>D>>A;
oi[i]=make_pair(A,D);
}
sort(oi.begin(),oi.begin()+N,compDist);
while(oi[0].dist+L*timp<=X)
timp++;
}
void Determinare(){
priority_queue<oaie,vector<oaie>,less<oaie>> coada;
int last=0;
unsigned long long cant=0;
while(timp>0){
timp--;
for(int i=last;i<oi.size();i++){
if(oi[i].dist+L*timp>X){
last=i;
break;
}
coada.push(oi[i]);
}
cant=cant+coada.top().lana;
coada.pop();
}
out<<cant;
}
int main()
{
Read();
Determinare();
return 0;
}