Pagini recente » Cod sursa (job #2531701) | Cod sursa (job #2972424) | Cod sursa (job #1921080) | Cod sursa (job #34308) | Cod sursa (job #185118)
Cod sursa(job #185118)
#include <stdio.h>
long long a[30000],b[30000],best[30000],n,max,m1,ult[30000];
void qsort(int li,int ls)
{
if (ls-li>0)
{
int i1=0,j1=-1,i=li,j=ls;
while (i<j)
{
if (b[i]>b[j]||(b[i]==b[j]&&a[i]<a[j]))
{
b[i]^=b[j]^=b[i]^=b[j];
a[i]^=a[j]^=a[i]^=a[j];
int aux=i1;
i1=-j1;
j1=-aux;
}
i+=i1;
j+=j1;
}
qsort(li,i-1);
qsort(i+1,ls);
}
}
int main()
{
freopen("heavymetal.in","r",stdin);
freopen("heavymetal.out","w",stdout);
scanf("%lld\n",&n);
int i,j;
for (i=0;i<n;i++)
scanf("%lld %lld\n",&a[i],&b[i]);
qsort(0,n-1);
best[0]=b[0]-a[0];
max=b[0]-a[0];
for (i=1;i<n;i++)
{
best[i]=best[i-1];
for (j=i-1;j>=0&&b[j]>a[i];j--);
if (best[i]<b[i]-a[i]+best[j])
best[i]=b[i]-a[i]+best[j];
if (max<best[i])
max=best[i];
}
printf("%lld\n",max);
return 0;
}