9999022 - 炸弹

小 X 是一个喜欢收集炸弹的士兵,今天他来到了一块埋着很多炸弹的危险区 域收集炸弹。 这块区域可以看成一个二维平面坐标系,一开始小 X 站在 (0, 0) 的位置上。 危险区域中一共深埋着 n 个炸弹,第 i 个炸弹的坐标为 (xi , yi)。 因为这块区域十分危险,小 X 必须遵守以下的规则行走:

  1. 若小 X 位于 (0, y) 的位置上,他可以花费 1 单位的时间走至 (0, y + 1)。
  2. 小 X 可以在任何时刻花费 1 单位的时间从 (x, y) 走到 (x, y−1) 或 (x, y+1)。 当小 X 站着的位置上存在炸弹时,他可以立刻收集这个炸弹,不花费时间。 可能存在同一个位置上有多个炸弹的情况。 当小 X 收集够炸弹以后,他可以使用秘技闪现即刻离开这块区域结束收集 (收集完以后不需要回到原点)。 现在小 X 想要知道,对于所有的 i = 1 ∼ n,他收集够 i 个炸弹所需要的最小 时间是多少。

输入

从文件 boom.in 中读入数据。 第一行一个整数 n。 接下来一共 n 行,每一行两个整数 (xi , yi),表示第 i 个炸弹的位置。

输出

输出到文件 boom.out。 输出共 i 行,第 i 行表示小 X 收集够 i 个炸弹所需要的最小时间

样例

输入

6
2 3
-2 6
-5 1
3 6
2 1
-5 3

输出

39
16
21
31
41

输入

5
0 1
0 2
0 3
1 4
0 

输出

12357

输入

10
-21 266
666 161
726 99
683 161
-819 266
9 161
493 99
-416 266
-483 241
748 276

输出

170
305
700
1103
2048
2451
3417
3903
4869
6446
时间限制 1 秒
内存限制 512 MB
讨论 统计
上一题 下一题