Pagini recente » Cod sursa (job #1918129) | Cod sursa (job #133342) | Cod sursa (job #3181738) | Cod sursa (job #2899151) | Cod sursa (job #1489426)
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
ifstream in("lupu.in");
ofstream out("lupu.out");
priority_queue <int> h;
pair <int,int> a[100010];
int N,X,L;
long long sol;
///N=numarul de oi
///X=distanta maxima de la care lupul poate alege oi
///L=distanta cu care se departeaza oile de lup dupa fiecare alegere
int main()
{
in>>N>>X>>L;
for(int i=1;i<=N;i++)
in>>a[i].first>>a[i].second;
in.close();
sort(a+1,a+N+1);
for(int d=0,i=1;d<=X;d+=L)
{
while(i<=N and a[i].first<=d)
{
h.push(a[i].second);
i++;
}
if(!h.empty())
{
sol+=h.top();
h.pop();
}
}
out<<sol<<'\n';
out.close();
return 0;
}