def distance(point1, point2):
    dist = abs(point1[0] - point2[0]) + abs(point1[1] - point2[1])
    return dist

num_volcanoes = int(input())

volcanoes = []
for _ in range(num_volcanoes):
    x, y = [int(i) for i in input().split(' ')]
    volcanoes.append((x,y))

m = dict()

for v in volcanoes:
    if m.get(v[0]) == None:
        m[v[0]] = []
    m[v[0]].append(v[1])

for k,v in m.items():
    v.sort()

xs = list(sorted(m.keys()))
xslen = len(xs)

def distance_recursive(level, point):
    if level == xslen:
        return 0
    next_x = xs[level]
    next_level_min = (next_x, m[next_x][0])
    next_level_max = (next_x, m[next_x][-1])
    dist = distance(next_level_min, next_level_max)
    dist_next_min = distance(point, next_level_min)
    dist_next_max = distance(point, next_level_max)
    return dist + min(
        dist_next_min + distance_recursive(level+1, next_level_min),
        dist_next_max + distance_recursive(level+1, next_level_max)
    )

root_x = xs[0]
root_min = (root_x, m[root_x][0])
root_max = (root_x, m[root_x][-1])
dist = distance(root_min, root_max) + min(
            distance_recursive(1, root_min),
            distance_recursive(1, root_max)
        )
print(dist)

