Pagini recente » Cod sursa (job #1714300) | Cod sursa (job #996048) | Cod sursa (job #15202) | Cod sursa (job #2109693) | Cod sursa (job #2416950)
#include <fstream>
#include <vector>
#include <algorithm>
#include <set>
#include <iterator>
#include <cmath>
using namespace std;
ifstream cin("lupu.in");
ofstream cout("lupu.out");
long long n,x,l,nv,nm,sum,d,a,ind,NM,answer;
vector < pair<long long, long long> > v;
multiset <long long> sety;
std:: multiset<long long> :: iterator it;
void scan();
int main()
{
scan();
sort(v.begin(), v.end());
ind=v.size()-1;
for(int i=NM; i; i--)
{
while(ind && v[ind].first==i)
sety.insert(v[ind--].second);
if(!sety.empty())
{
it=sety.end(); it--;
answer+=*it;
sety.erase(it);
}
}
cout<<answer<<'\n';
return 0;
}
void scan(){
cin>>n>>x>>l;
v.push_back({0,0});
for(int i=1; i<=n; i++)
{
cin>>d>>a;
if(x>=d)
nm=(x-d)/l+1;
else nm=-1;
if(nm>=0)
v.push_back({nm,a});
NM=max(NM,nm);
}
}