Pagini recente » Cei mai harnici utilizatori info-arena | Cod sursa (job #976813) | Cod sursa (job #1860410) | Cod sursa (job #1893152) | Cod sursa (job #1848662)
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
struct oaie
{
int d,l;
}a[100005];
int n,x,l,k;
priority_queue <int> q;
bool cmp(oaie a,oaie b)
{
if(a.d!=b.d)
return a.d<b.d;
else
return a.l>b.l;
}
int main()
{
fin>>n>>x>>l;
for(int i=1;i<=n;i++)
{
k++;
fin>>a[k].d>>a[k].l;
if(a[k].d>x)
k--;
else
a[k].d=(x-a[k].d)/l;
}
n=k;
k=0;
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++)
{
if(a[i].d-k>=0)
{
k++;
q.push(a[i].l);
}
else
if(a[i].l>q.top())
{
q.pop();
q.push(a[i].l);
}
}
long long sum=0;
while(!q.empty())
{
sum+=q.top();
q.pop();
}
fout<<sum;
return 0;
}