Pagini recente » Cod sursa (job #577033) | Cod sursa (job #1847898) | Cod sursa (job #2009658) | Cod sursa (job #791889) | Cod sursa (job #359600)
Cod sursa(job #359600)
#include<fstream>
#define dmax 100003
using namespace std;
ifstream in("lupu.in");
ofstream out("lupu.out");
int n,h[dmax],dim;
long long x,l,t,lana;
struct oaie
{ long long d;
long long a;
bool z;
} oi[dmax];
int father(int k)
{ return k/2;
}
void percolate(int n,int k)
{ long long key=oi[h[k]].a;
int pi=h[k];
while(k>1 && key>oi[h[father(k)]].a)
{ h[k]=h[father(k)];
k=father(k);
}
h[k]=pi;
}
int main()
{ int i,ok,j;
in>>n>>x>>l;
for(i=1;i<=n;i++)
{ in>>oi[i].d>>oi[i].a;
oi[i].z=1;
}
in.close();
while(ok)
{ ok=0;
for(i=1;i<=n;i++)
{ if(oi[i].d+(t+1)*l>x && oi[i].z==1)
{ ok=1;
dim++;
h[dim]=i;
percolate(dim,dim);
oi[i].z=0;
}
}
if(ok)
lana+=oi[h[1]].a;
t++;
dim=0;
}
out<<lana;
out.close();
return 0;
}