# 1. Load input
n=int(input())
points = []

for _ in range(n):
    x, y = map(int, input().split())
    points.append((x,y))

#######################################################
points = sorted(points)

# calc fixed x dist total
x_dist = abs(points[0][0] - points[-1][0])

# calc indices when x-cord changes
points_change = []
last_i = 0
for i in range(1, len(points)):
    # print(f"{points[i-1], points[i]=}")
    if points[i-1][0] != points[i][0]:
        points_change.append([last_i, i-1])
        last_i=i
        # print(f"\t{points_change[-1]=}")
points_change.append([last_i, len(points)-1])
# print(points)
# print(points_change)


# sum y dist of points with same x coord
y_dist_same = 0
for i in range(len(points_change)):
    x1, x2 = points_change[i]
    if (x2!=x1):
        y_dist_same += abs(points[x1][1]-points[x2][1])

# # # sum y dist of points with diff x coord
# # # snake like
sign=1
y_dist_diff = 0
for i in range(len(points_change)-1):
    sign *= -1
    a, b = points_change[i][sign==1], points_change[i+1][sign!=1]
    # print(f"{a, b=} {points[a], points[b]=}")
    y_dist_diff += abs(points[a][1] - points[b][1])

total1= x_dist+ y_dist_same+y_dist_diff

sign=-1
y_dist_diff = 0
for i in range(len(points_change)-1):
    sign *= -1
    a, b = points_change[i][sign==1], points_change[i+1][sign!=1]
    # print(f"{a, b=} {points[a], points[b]=}")
    y_dist_diff += abs(points[a][1] - points[b][1])

total2=x_dist+ y_dist_same+y_dist_diff

print(min(total1, total2))





