Pagini recente » Cod sursa (job #3299182) | Cod sursa (job #3299191) | Cod sursa (job #3299135) | Cod sursa (job #3299105)
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
struct oi
{
int dist;
int lana;
int runde;
};
bool ok(oi a , oi b)
{
return a.runde < b.runde;
}
int main()
{
int n,x,l,i;
fin>>n>>x>>l;
oi e[n+1];
int nrrunde=0,lana=0;
for(i=1;i<=n;i++)
{
fin>>e[i].dist>>e[i].lana;
e[i].runde=(x-e[i].dist)/l + 1;
nrrunde=max(nrrunde,e[i].runde);
}
sort(e+1,e+n+1,ok);
priority_queue<int>q;
int j=n;
for(i=nrrunde;i>=1;i--)
{
while(i==e[j].runde)
{
q.push(e[j].lana);
j--;
}
if(!q.empty())
{
lana+=q.top();
q.pop();
}
}
fout<<lana;
return 0;
}