from functools import cache


def dist(l, r):
    lx, ly = l
    rx, ry = r

    return abs(lx-rx) + abs(ly-ry)

inputs = int(input())

points = dict()
xs = set()

for _ in range(inputs):
    line = input().split(' ')
    x, y = int(line[0]), int(line[1])
    lst = points.get(x, [])
    lst.append((x, y))
    points[x] = lst
    xs.add(x)

total = 0

xs = list(xs)
xs.sort()


@cache
def solve(idx, start_idx):
    line = points[xs[idx]]
    line.sort()
    d = dist(line[0], line[-1])

    if idx == 0:
        return d

    current = line[0 if start_idx == -1 else -1]

    prev = points[xs[idx-1]]

    prev_l = solve(idx-1, 0) + dist(current, prev[0])
    prev_u = solve(idx-1, -1) + dist(current, prev[-1])

    d += min(prev_l, prev_u)

    return d

# total = dist(last_line[0], last_line[-1])

total = min(solve(len(xs)-1, 0), solve(len(xs)-1, -1))

print(total)

