Pagini recente » Cod sursa (job #2240648) | Cod sursa (job #347068) | Cod sursa (job #896695) | Cod sursa (job #426827) | Cod sursa (job #2442053)
#include <fstream>
#include <set>
#include <algorithm>
#define nmax 100001
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
struct oaie{
int timp;
int lana;
bool operator<(const oaie& a) {
return this->timp<a.timp;
}
};
int main(){
int n, x, l, i, total=0, nr, k=0, a, b;
multiset<int> mp;
oaie oita[100003];
f>>n>>x>>l;
for(i=1;i<=n;i++){
f>>a>>b;
if(a<=x){
k++;
oita[k].timp=(x-a)/l+1;
oita[k].lana=b;
}
}
sort(oita+1,oita+k+1);
int t=oita[k].timp;
nr=k;
for(i=t;i>=1;i--){
while(nr>0 && oita[nr].timp==i){
mp.insert(oita[nr].lana);
nr--;
}
if(!mp.empty()){
total+=*(mp.rbegin());
mp.erase(--mp.end());
}
}
g<<total<<" ";
}