Pagini recente » Cod sursa (job #1468504) | Cod sursa (job #2155713) | Cod sursa (job #1548584) | Cod sursa (job #2613539) | Cod sursa (job #2914619)
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
priority_queue<int> Q;
struct lupu
{
int l,t;
bool operator<(const lupu &o)
{
return t<o.t;
}
};
lupu v[100005];
int n,k,q,i,sol,d[100005],p,t;
int main()
{
fin >>n>>k>>q;
for(i=1;i<=n;i++)
{
fin >>d[i]>>v[i].l;
v[i].t=(k-d[i])/q;
}
sort(v+1,v+n+1);
p=n;
t=v[n].t;
while(t>=0)
{
while(p>0 && v[p].t>=t)
{
Q.push(v[p].l);
p--;
}
if(!Q.empty()) {sol+=Q.top();Q.pop();}
t--;
}
fout <<sol;
return 0;
}