volcs = []

maxx = 0
minx = 999999999

for _ in range(int(input())):
	coords = input().split(' ')
	if int(coords[0]) > maxx:
		maxx = int(coords[0])
	if int(coords[0]) < minx:
		minx = int(coords[0])
	volcs.append((int(coords[0]), int(coords[1])))


v = [[] for _ in range(minx, maxx + 1)]
for volc in volcs:
	if len(v[volc[0] - minx]) == 0:
		v[volc[0] - minx] = [volc[1], volc[1]]
	elif volc[1] < v[volc[0] - minx][0]:
		v[volc[0] - minx][0] = volc[1]
	elif volc[1] > v[volc[0] - minx][1]:
		v[volc[0] - minx][1] = volc[1]
		

def rec(s, y):
	vs = v[s]
	
	if len(vs) == 0: # skip riadku
		return rec(s+1, y) + 1
	
		
	d = abs(vs[0] - vs[1])
	if s == maxx - minx:
		if d == 0:
			return abs(vs[0]-y)
		else:
			return min(abs(vs[1]-y), abs(vs[0]-y)) + d
		
	if d == 0:
		return abs(vs[0]-y) + 1 + rec(s+1, vs[0])
	else:
		return min(
			abs(vs[0]-y) + 1 + d + rec(s+1, vs[1]),
			abs(vs[1]-y) + 1 + d + rec(s+1, vs[0])
		)
	



print(min(rec(0, v[0][0]), rec(0, v[0][1])))
