Pagini recente » Cod sursa (job #1990278) | Cod sursa (job #247321) | Cod sursa (job #1057566) | Cod sursa (job #1838891) | Cod sursa (job #2861776)
#include <iostream>
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
priority_queue<int> lana;
struct oi
{
long long int d,lan,m;
bool operator <(const oi &o)
{
return m>o.m;
}
};
oi v[100005];
int main()
{
long long int n,x,l,a,b,c,cnt=0;
long long int sol=0;
fin>>n>>x>>l;
for(int i=1; i<=n; i++)
{
fin>>a>>b;
c=(x-a)/l;
if(c>=0) v[i-cnt]= {a,b,c};
if(c<0) cnt++;
}
n=n-cnt;
sort(v+1,v+n+1);
/*for(int i=1;i<=n;i++)
{
fout<<v[i].d<<' '<<v[i].lan<<' '<<v[i].m<<'\n';
}*/
long long int moment=-1;
for(int i=1;i<=n;i++)
{
if(moment!=v[i].m && !lana.empty())
{
sol+=lana.top();
lana.pop();
moment=v[i].m;
lana.push(v[i].lan);
}
else
{
lana.push(v[i].lan);
moment=v[i].m;
}
}
sol+=lana.top();
fout<<sol;
return 0;
}