# 地精排序 - 参考时间限制:0.5 秒。 - 实际时限:标准程序在目标环境的最慢用例中位耗时乘以 2,再按 0.5 秒向上取整。 - 内存限制:128 MB。 - [参考评测环境与测量](../../../docs/评测环境与性能.md) ## 背景故事 一个地精沿着一排格子移动,每个格子放着一个二维向量。他发现相邻向量次序颠倒时,就交换它们并向左退一步。你想知道他检查相邻向量的步骤会执行多少次。 ## 形式化问题描述 给定从左到右排列的 $n$ 个两两不同的二维向量 $v_i=(x_i,y_i)$ .向量按字典序比较:先比较第一维,第一维相等时比较第二维。 地精初始位于第 $1$ 个格子。按照以下步骤移动,直到结束任务: ```text (0) 若当前位置为 1,向右移动一格;然后执行 (1)。 (1) 检查当前向量是否小于左邻向量。 若小于,则交换这两个向量,向左移动一格,回到 (0)。 否则执行 (2)。 (2) 若当前位置为 n,结束;否则执行 (3)。 (3) 向右移动一格,回到 (1)。 ``` 求步骤 `(1)` 的执行总次数,无论其中的条件是否成立。 ## 输入格式 第一行一个整数 $n$ .接下来 $n$ 行,每行两个整数 $x_i,y_i$ . ## 输出格式 输出一行一个整数,表示步骤 `(1)` 的执行次数。 ## 样例 ### 样例 1 ### 输入 ```text 3 0 0 0 1 1 -1 ``` ### 输出 ```text 2 ``` ### 样例 2 ### 输入 ```text 4 4 0 3 0 2 0 1 0 ``` ### 输出 ```text 12 ``` ### 样例 3 ### 输入 ```text 5 0 2 -1 8 0 -5 2 -8 -1 7 ``` ### 输出 ```text 14 ``` ## 样例解释 样例一已经有序,地精检查两次。样例二每次插入下一个向量,都需要退回第一个格子;共执行 $12$ 次检查。 ## 数据范围与保证 对 **100% 数据**: $2\le n\le5\times10^5$ ;$|x_i|,|y_i|\le10^9$ .向量两两不同,但同一维的坐标可以相等。 | 分值比例 | 额外条件 | | --- | --- | | 100% | 无额外条件 |