Pagini recente » Borderou de evaluare (job #702539) | Borderou de evaluare (job #2131509) | Borderou de evaluare (job #380933) | Borderou de evaluare (job #2552615) | Cod sursa (job #2412385)
#include <fstream>
#include <set>
#include <algorithm>
#define mm first
#define ln second
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
int n,i,a,b,x,L,k,sol,poz;
pair <int, int> v[100010];
multiset<int> s;
multiset<int>::iterator it;
int main () {
fin>>n>>x>>L;
for (i=1;i<=n;i++) {
fin>>v[i].mm>>v[i].ln;
if (v[i].mm <= x) {
k++;
v[k].mm=1+(x-v[i].mm)/L;
}
}
n=k;
sort (v+1,v+n+1);
poz=n;
for (i=v[n].mm;i>=1;i--) {
while (v[poz].mm==i && poz>=1) {
s.insert(v[poz].ln);
poz--;
}
if (!s.empty()) {
it=s.end();
it--;
sol+=*it;
s.erase(it);
}
}
fout<<sol;
}