Pagini recente » Cod sursa (job #117359) | Cod sursa (job #2697692) | Cod sursa (job #798682) | Cod sursa (job #539476) | Cod sursa (job #2398880)
#include <bits/stdc++.h>
#define DMAX 300100
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
priority_queue<long long int> H;
struct oaie{long long int dist,lana,inter;};
oaie a[DMAX];
long long int n,distmax,dep,rest;
bool compar(oaie x,oaie y)
{
return x.inter<y.inter;
}
int main()
{long long int i;
fin>>n>>distmax>>dep;
rest=distmax%dep;
for(i=1;i<=n;i++)
{fin>>a[i].dist>>a[i].lana;
a[i].inter=a[i].dist/dep+1;
if(!(a[i].dist%dep))
a[i].inter--;
}
sort(a+1,a+n+1,compar);
long long int nrmax=0;
long long int nrint=0;
long long int c1=1;
while(nrint<=distmax/dep)
{
while(c1<=n&&a[c1].inter==nrint)
H.push(a[c1].lana),c1++;
if(H.size())
{nrmax+=H.top();
H.pop();}
nrint++;
}
fout<<nrmax;
}