Pagini recente » Cod sursa (job #2260058) | Cod sursa (job #402260) | Cod sursa (job #1952074) | Cod sursa (job #1586625) | Cod sursa (job #2463779)
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
ifstream in("lupu.in");
ofstream out("lupu.out");
struct nya{int st,dr;};
nya a[100001];
int nr,nr1,s,n,x,l,i,j,op,ss;
priority_queue <int> Q;
int cmp(nya a,nya b)
{
return a.st<b.st||(a.st==b.st&&a.dr>b.dr);
}
int main()
{
in>>n>>x>>l;
for (i=1;i<=n;++i)
{
in>>a[i].st>>a[i].dr;
a[i].st=(a[i].st+1)/l+1;
}
sort(a+1,a+n+1,cmp);
nr=a[1].st;
for (i=2;i<=n;++i)
{
i--;
nr=a[i].st;
ss=nr-nr1;
j=i;
while (nr==a[j].st&&j<=n)
{
Q.push(a[j].dr);
j++;
}
while (nr==a[i].st&&i<=n&&op<nr)
{
s=s+Q.top();
op++;
Q.pop();
i++;
}
while (nr==a[i].st&&i<=n)
{
i++;
}
nr1=nr;
}
out<<s;
return 0;
}