Pagini recente » Cod sursa (job #1632802) | Cod sursa (job #2967436)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
const int NMAX = 1e6 + 5;
int n,x,dx,rasp;
struct oaieStr
{
int d,l;
bool operator < (const oaieStr &a) const
{
return l<a.l;
}
} v[NMAX];
bool sortare (const oaieStr &a, const oaieStr &b)
{
return a.d<b.d;
}
priority_queue<oaieStr> pq;
int32_t main()
{
fin>>n>>x>>dx;
int suma=0;
for(int i=0; i<n; i++)
{
fin>>v[i].d>>v[i].l;
if(v[i].d <= x) suma+=v[i].l;
}
if(dx==0)
{
fout<<suma;
return 0;
}
sort(v,v+n,sortare);
int lim = x%dx, i = 0;
while(lim<=x)
{
for(; i<n && v[i].d <=lim; i++)
{
pq.push(v[i]);
}
if(!pq.empty())
{
rasp+=pq.top().l;
pq.pop();
}
lim+=dx;
}
fout<<rasp;
return 0;
}