Pagini recente » Cod sursa (job #3266217) | Cod sursa (job #905339) | Cod sursa (job #1222107) | Cod sursa (job #2395781) | Cod sursa (job #2627248)
#include <bits/stdc++.h>
#define maxn 100005
std::ifstream fin ("lupu.in");
std::ofstream fout ("lupu.out");
struct Sheep{
long long dist, val;
}sheep[maxn];
bool sheepSort (Sheep a, Sheep b){
return a.dist > b.dist;
}
int main()
{
long long n, maxDist, moveDist, i;
long long ans=0;
fin >> n >> maxDist >> moveDist;
for (i=0; i<n; i++)
fin >> sheep[i].dist >> sheep[i].val;
std::sort (sheep, sheep+n, sheepSort);
for (i=0; i<n; i++)
if (sheep[i].dist <= maxDist)
break;
while (maxDist >=0){
std::priority_queue <long long> pq;
for (; i<n; i++){
if (maxDist-sheep[i].dist >= moveDist and pq.empty() == false)
break;
pq.push (sheep[i].val);
}
ans = ans + pq.top();
maxDist -= moveDist;
}
fout << ans << '\n';
return 0;
}