Peter 决定认真准备新的学年:他打算买一部新智能手机。在阅读了评测后,他下定决心选择了 Psiomi Ni 42 型号。为了赚取买新设备的钱,Peter 在当地的一家商场找了一份工作。面试后,他被录用去清理停车场上的购物车。这份工作的实质是——他应该把商场停车场上的空购物车收集起来,并把它们推回商场。显然,Peter 不想浪费他的时间和精力,所以他想出了一个办法,让这份工作尽可能变得轻松。你可能已经猜到了,Peter 已经在努力工作了——在论坛上阅读如何获取他新手机的 root 权限。与此同时,请尝试解决 Peter 在商场工作中已经解决的这个任务。
为了使问题简化,我们可以假设停车场是一个笛卡尔坐标系平面,在任何方向上都是无限延伸的。每个购物车占用一个顶点为整数坐标的单位正方形网格。我们假设在单位时间内,单个购物车可以向左、向右、向上或向下移动到相邻的整数网格中,前提是该网格没有被其他购物车占用。
求将所有购物车排成一排与其中一个坐标轴平行的相邻网格所需的最小购物车移动次数。
输入格式
输入的第一行包含一个整数 $n$ —— 停车场中购物车的数量($2 \le n \le 10^5$)。
接下来的 $n$ 行描述了购物车的位置。每个购物车的位置由两个空格分隔的整数 $x$ 和 $y$ 描述 —— 对应平面上正方形左下角的坐标($0 \le x, y \le 10^9$)。
保证每个网格中最多只有一个购物车。
输出格式
输出必须包含一个整数 —— 最小的购物车移动次数。
样例
输入 1
5 0 2 1 2 2 2 0 3 1 4
输出 1
6
说明
在样例中,可以通过 6 次移动将购物车排列到与任一坐标轴平行的直线上: