#DP1043. 线段

线段

线段

题目描述

在一个 n×nn \times n 的平面上,在每一行中有一条线段,第 ii 行的线段的左端点是(i,Li)(i, L_{i}),右端点是(i,Ri)(i, R_{i})

你从 (1,1)(1,1) 点出发,要求沿途走过所有的线段,最终到达 (n,n)(n,n) 点,且所走的路程长度要尽量短。

更具体一些说,你在任何时候只能选择向下走一步(行数增加 11)、向左走一步(列数减少 11)或是向右走一步(列数增加 11)。当然,由于你不能向上行走,因此在从任何一行向下走到另一行的时候,你必须保证已经走完本行的那条线段。

输入格式

第一行有一个整数 nn

以下 nn 行,在第 ii 行(总第 (i+1)(i+1) 行)的两个整数表示 LiL_iRiR_i

输出格式

仅包含一个整数,你选择的最短路程的长度。

样例 #1

样例输入 #1

6
2 6
3 4
1 3
1 2
3 6
4 5

样例输出 #1

24

提示

我们选择的路线是

(1, 1) (1, 6)
 (2, 6) (2, 3)
 (3, 3) (3, 1)
 (4, 1) (4, 2)
 (5, 2) (5, 6)
 (6, 6) (6, 4) (6, 6)

不难计算得到,路程的总长度是 2424n2×104n \le 2 \times 10^41LiRin1 \le L_i \le R_i \le n