t = 1 #t = int(input()) def check(x): c11 = [xma-x,yma-x] c12 = [xmi+x,ymi+x] tf1 = True c21 = [xma-x,ymi+x] c22 = [xmi+x,yma-x] tf2 = True for i in range(n): if max(abs(c11[0]-lis[i][0]),abs(c11[1]-lis[i][1])) > x and max(abs(c12[0]-lis[i][0]),abs(c12[1]-lis[i][1])) > x: tf1 = False if max(abs(c21[0]-lis[i][0]),abs(c21[1]-lis[i][1])) > x and max(abs(c22[0]-lis[i][0]),abs(c22[1]-lis[i][1])) > x: tf2 = False if tf1 or tf2: return True return False for _ in range(t): n = int(input()) lis = [] xma,xmi = -10**18,10**18 yma,ymi = -10**18,10**18 for i in range(n): x,y = map(int, input().split()) x *= 2 y *= 2 lis.append([x+y,x-y]) xma,xmi = max(xma,x+y),min(xmi,x+y) yma,ymi = max(yma,x-y),min(ymi,x-y) l = 10**18 r = -1 while abs(l-r) > 1: m = (l+r)//2 if check(m): l = m else: r = m print(l)