Pagini recente » Cod sursa (job #833241) | Cod sursa (job #1583059) | Cod sursa (job #35202) | Cod sursa (job #178506) | Cod sursa (job #1051499)
#include<cstdio>
#include<vector>
#include<set>
using namespace std;
vector <long long> v[1000006];
multiset<long long> h;
long long n,k,l,i,mx,d,PUF,s;
int main()
{
freopen("lupu.in","r",stdin);
freopen("lupu.out","w",stdout);
scanf("%lld%lld%lld",&n,&k,&l);
mx=0;
s=0;
for(i=1;i<=n;i++)
{
scanf("%lld%lld",&d,&PUF);
v[((k-d)/l)+1].push_back(PUF);
if((k-d)/l>=mx)
{
mx=(k-d)/l;
mx++;
}
}
vector<long long> ::iterator it;
multiset<long long> ::iterator it2;
for(i=mx;i>=1;i--)
{
for(it=v[i].begin();it!=v[i].end();it++)
{
h.insert((*it));
}
it2=h.end();
it2--;
s+=*it2;
h.erase(it2);
}
printf("%lld\n",s);
}