using System;
using System.Collections.Generic;

namespace shIT
{
	class Program
	{
		static void Main(string[] args)
		{
			int n = int.Parse(Console.ReadLine());

			int[] vrste = new int[n];
			int[] kolone = new int[n];

			for (int i = 0; i < n; i++)
			{
				string[] unos = Console.ReadLine().Split();
				int vrsta = int.Parse(unos[0]) - 1;
				int kolona = int.Parse(unos[1]) - 1;

				vrste[vrsta]++;
				kolone[kolona]++;
			}//--unos


			int cost = 0;
			
			//sredi vrste
			for (int i = 0; i < vrste.Length; i++)
			{
				if (vrste[i] == 0)  //ako je vrsta prazna
				{
					//nadji prvu koja ima 2 ili vise novcica
					for (int x = 0; x < vrste.Length; x++)
					{
						if (vrste[x] > 1)
						{
							cost += (Math.Abs(x - i));
							vrste[i] = 1;
							vrste[x]--;
							break;
						}
					}
				}
			}

			//sredi kolone
			for (int i = 0; i < kolone.Length; i++)
			{
				if (kolone[i] == 0)  //ako je kolona prazna
				{
					//nadji prvu koja ima 2 ili vise novcica
					for (int x = 0; x < kolone.Length; x++)
					{
						if (kolone[x] > 1)
						{
							cost += (Math.Abs(x - i));

							kolone[i] = 1;
							kolone[x]--;
							break;
						}
					}
				}
			}

			Console.WriteLine(cost);
		}	
	}
}