import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine().trim()); long[][] pts = new long[n][2]; for (int i = 0; i < n; i++) { StringTokenizer st = new StringTokenizer(br.readLine()); pts[i][0] = Math.abs(Long.parseLong(st.nextToken())); pts[i][1] = Math.abs(Long.parseLong(st.nextToken())); } Arrays.sort(pts, (p, q) -> p[0] != q[0] ? Long.compare(q[0], p[0]) : Long.compare(q[1], p[1])); List front = new ArrayList<>(); long maxY = 0; int i = 0; while (i < n) { int j = i; long curX = pts[i][0]; long curMaxY = 0; while (j < n && pts[j][0] == curX) { curMaxY = Math.max(curMaxY, pts[j][1]); j++; } if (curMaxY > maxY) { front.add(new long[] { curX, curMaxY }); maxY = curMaxY; } i = j; } int m = front.size(); long[] dp = new long[m + 1]; dp[m] = 0; for (int ii = m - 1; ii >= 0; ii--) { long a = front.get(ii)[0]; long b = 0; dp[ii] = Long.MAX_VALUE; for (int jj = ii; jj < m; jj++) { b = Math.max(b, front.get(jj)[1]); long area = 4L * a * b; long total = area + dp[jj + 1]; dp[ii] = Math.min(dp[ii], total); } } System.out.println(dp[0]); } }