Pagini recente » Cod sursa (job #371718) | Cod sursa (job #1592391) | Cod sursa (job #1749442) | Cod sursa (job #1992376) | Cod sursa (job #2009383)
#include<cstdio>
#include<algorithm>
using namespace std;
const int nmax=1e5+5;
struct al
{
int x,y;
}v[nmax];
long long d[nmax];
inline bool cmp(al a,al b)
{
return a.y<b.y;
}
inline int bsearch(int x,int dr)
{
int i,step=1<<20;
for(i=0;step;step>>=1)
if(i+step<dr && v[i+step].y <=x)
i+=step;
return i;
}
inline long long max(long long a,long long b)
{
if(a>b)
return a;
return b;
}
int main()
{
freopen("heavymetal.in","r",stdin);
freopen("heavymetal.out","w",stdout);
int n,i,j;
scanf("%d",&n);
for(i=1;i<=n;++i)
scanf("%d%d",&v[i].x,&v[i].y);
sort(v+1,v+n+1,cmp);
d[1]=v[1].y-v[1].x;
int poz;
for(i=2;i<=n;++i)
{
poz=bsearch(v[i].x , i);
d[i]=d[poz]+v[i].y-v[i].x;
d[i]=max(d[i-1],d[i]);
}
long long maxim=d[1];
for(i=2;i<=n;++i)
if(d[i]>maxim)
maxim=d[i];
printf("%lld",maxim);
}