Pagini recente » Cod sursa (job #1072576) | Cod sursa (job #2471591) | Cod sursa (job #1684150) | Cod sursa (job #1610098) | Cod sursa (job #2355040)
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
ifstream in("lupu.in");
ofstream out("lupu.out");
const int N=100010;
pair<int,int>v[N];
int n,x,l;
priority_queue<int>q;
bool comestibil(int poz, int pas)
{
if(poz<=n && pas*l+v[poz].first<=x)
return true;
return false;
}
int main()
{
in>>n>>x>>l;
for(int i=1;i<=n;i++)
in>>v[i].first>>v[i].second;
sort(v+1,v+n+1);
int nrpasi=(x-v[0].first)/l;
int poz=0;
long long s=0;
for(int pas=nrpasi;pas>=0;pas--)
{
while(comestibil(poz,pas))
{
q.push(v[poz].second);
poz++;
}
if(!q.empty())
{
s=s+q.top();
q.pop();
}
}
out<<s;
return 0;
}