Pagini recente » Cod sursa (job #561302) | Cod sursa (job #530201) | Cod sursa (job #2357581) | Cod sursa (job #3226383) | Cod sursa (job #185126)
Cod sursa(job #185126)
#include <stdio.h>
long long a[30000],b[30000],best[30000],n,max,m1,ult[30000];
void qsort(long long li,long long ls)
{
if (ls-li>0)
{
long long 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];
long long 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);
long long 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];
}
printf("%lld\n",best[n-1]);
return 0;
}