output_description: Print the maximum possible total joyfulness of the two contests.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      L_1 R_1
      L_2 R_2
      \vdots
      L_N R_N
attempt: from bisect import *
  from collections import *
  from fractions import gcd
  from math import factorial
  from itertools import *
  from heapq import *
  
  
  
  N=int(input())
  LR=[list(map(int,input().split())) for i in range(N)]
  for i in range(N):
      LR[i][1]+=1
  
  value=max([R-L for L,R in LR])
  #LR=sorted(LR,key=lambda x:x[1])
  LR=sorted(LR,key=lambda x:x[0]*10**9+x[1])
  a=2*(10**9)
  minRlst=[a for i in range(N)]
  minRlst[-1]=LR[-1][1]
  maxLlst=[0 for i in range(N)]
  maxLlst[0]=LR[0][0]
  for i in range(N-2,-1,-1):
      minRlst[i]=min(minRlst[i+1],LR[i][1])
  for i in range(1,N):
      maxLlst[i]=max(minRlst[i-1],LR[i][0])
  L1,R1=LR[0]
  L2,R2=LR[-1][0],minRlst[1]
  maxR=from bisect import *
  from collections import *
  from fractions import gcd
  from math import factorial
  from itertools import *
  from heapq import *
  
  
  
  N=int(input())
  LR=[list(map(int,input().split())) for i in range(N)]
  for i in range(N):
      LR[i][1]+=1
  
  value=max([R-L for L,R in LR])
  #LR=sorted(LR,key=lambda x:x[1])
  LR=sorted(LR,key=lambda x:x[0]*10**9+x[1])
  a=2*(10**9)
  minRlst=[a for i in range(N)]
  minRlst[-1]=LR[-1][1]
  maxLlst=[0 for i in range(N)]
  maxLlst[0]=LR[0][0]
  for i in range(N-2,-1,-1):
      minRlst[i]=min(minRlst[i+1],LR[i][1])
  for i in range(1,N):
      maxLlst[i]=min(minRlst[i-1],LR[i][0])
  L1,R1=LR[0]
  L2,R2=LR[-1][0],minRlst[1]
  minR=min([R for L,R in LR])
  for i in range(0,N-1):
      L,R=LR[i]
      a=max(R-L,0)
      b=max(minR-LR[-1][0],0)
      value=max(value,a+b)
      L1=L
      R1=min(R1,R)
      R2=minRlst[i+1]
      a=max(R1-L1,0)
      b=max(R2-L2,0)
      value=max(value,a+b)
  print(value)
  ([R for L,R in LR])
  for i in range(0,N-1):
      L,R=LR[i]
      a=max(R-L,0)
      b=max(maxR-LR[-1][0],0)
      value=max(value,a+b)
      L1=L
      R1=min(R1,R)
      R2=minRlst[i+1]
      a=max(R1-L1,0)
      b=max(R2-L2,0)
      value=max(value,a+b)
  print(value)
  
problem_description: Statement
  
  10^9 contestants, numbered 1 to 10^9, will compete in a competition. There
  will be two contests in this competition.
  
  The organizer prepared N problems, numbered 1 to N, to use in these contests.
  When Problem i is presented in a contest, it will be solved by all contestants
  from Contestant L_i to Contestant R_i (inclusive), and will not be solved by
  any other contestants.
  
  The organizer will use these N problems in the two contests. Each problem must
  be used in exactly one of the contests, and each contest must have at least
  one problem.
  
  The _joyfulness_ of each contest is the number of contestants who will solve
  all the problems in the contest. Find the maximum possible total joyfulness of
  the two contests.
samples: [{"input": "4\n    4 7\n    1 4\n    5 8\n    2 5", "output": "6\n    \n\nThe optimal choice is:\n\n  * Use Problem 1 and 3 in the first contest. Contestant 5, 6, and 7 will solve both of them, so the joyfulness of this contest is 3.\n  * Use Problem 2 and 4 in the second contest. Contestant 2, 3, and 4 will solve both of them, so the joyfulness of this contest is 3.\n  * The total joyfulness of these two contests is 6. We cannot make the total joyfulness greater than 6.\n\n* * *"}, {"input": "4\n    1 20\n    2 19\n    3 18\n    4 17", "output": "34\n    \n\n* * *"}, {"input": "10\n    457835016 996058008\n    456475528 529149798\n    455108441 512701454\n    455817105 523506955\n    457368248 814532746\n    455073228 459494089\n    456651538 774276744\n    457667152 974637457\n    457293701 800549465\n    456580262 636471526", "output": "540049931"}]