Pagini recente » Cod sursa (job #2667213) | Cod sursa (job #861042) | Cod sursa (job #2251681) | Cod sursa (job #1378756) | Cod sursa (job #2138116)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
long long n,x,l,i,sum=0,j;
long long H[100005];
struct heap
{
int d,c;
}v[100005];
void Comb_Heap(int i, int n)
{
int p=H[i];
int o=v[i].d;
int tata=i;
int fiu=2*i;
while(fiu<=n)
{
if(fiu<n)
{
if(H[fiu]<H[fiu+1])
{
fiu++;
}
}
if(p<H[fiu])
{
v[tata].d=v[fiu].d;
H[tata]=H[fiu];
tata=fiu;
fiu=fiu*2;
}
else
{
fiu=n+1;
}
v[tata].d=o;
H[tata]=p;
}
}
void Creare_Heap()
{
int i;
for(i=n/2; i; i--)
{
Comb_Heap(i,n);
}
}
int main()
{
fin>>n>>x>>l;
for(i=1;i<=n;i++)
{
fin>>v[i].d>>v[i].c;
H[i]=v[i].c;
}
Creare_Heap();
for(i=1;i<=n;i++)
{
if(v[i].d<=x)
{
sum=sum+H[i];
for(j=i;j<=n;j++)
{
v[j].d=v[j].d+l;
}
}
}
fout<<sum;
return 0;
}