Pagini recente » Cod sursa (job #1160350) | Cod sursa (job #2323216) | Cod sursa (job #667710) | Cod sursa (job #745785) | Cod sursa (job #342367)
Cod sursa(job #342367)
#include <fstream.h>
#define MaxN 100009
long d[MaxN],l[MaxN],X,L,n,s,k;
void cit()
{
int i;
ifstream fin("lupu.in");
fin>>n>>X>>L;
for(i=1;i<=n;i++)
fin>>d[i]>>l[i];
fin.close();
}
void swap(int i,int j)
{
long aux=d[i]; d[i]=d[j]; d[j]=aux;
aux=l[i]; l[i]=l[j]; l[j]=aux;
}
void poz(int li,int ls)
{
long i=0,j=-1,c;
while(li<ls)
{
if(d[li]>d[ls])
{
swap(li,ls);
c=i; i=-j; j=-c;
}
li+=i; ls+=j;
}
k=li;
}
void quick(int li,int ls)
{
if(li<ls)
{
poz(li,ls);
quick(li,k-1);
quick(k+1,ls);
}
}
void sol()
{
long max,t=0,i=n,j;
while(d[i]>X && i>=1)
i--;
while(i>=1)
{
j=i; max=0;
while(d[j]+t>X && j>=1)
{
if(l[j]>max)
max=l[j];
j--;
}
i=j;
s+=max; t+=L;
}
}
void afis()
{
ofstream fout("lupu.out");
fout<<s;
fout.close();
}
int main()
{
cit();
quick(1,n);
sol();
afis();
return 0;
}