#302. 排队调整

排队调整

排队调整

题目描述

体育课上有 nn 名同学排成一队,从前往后数第 ii 位同学的身高为 hih_i,体重为 wiw_i。目前排成的队伍看起来参差不齐,老师希望同学们能按照身高从高到低的顺序排队,如果身高相同则按照体重从重到轻排序。在调整队伍时,每次只能交换相邻两位同学的位置。老师想知道,最少需要多少次交换操作,才能将队伍调整成目标顺序。

输入格式

第一行,一个正整数 nn,表示队伍人数。

接下来 nn 行,每行两个正整数 hih_iwiw_i,分别表示第 ii 位同学的身高和体重。

输出格式

输出一行,一个整数,表示最少需要的交换次数。

样例输入

样例输入 1

5
1 60
3 70
2 80
4 55
4 50

样例输入 2

5
4 0
4 0
2 0
3 0
1 0

样例输出

样例输出 1

8

样例输出 2

1

样例解释

对于第一个样例,目标队伍顺序为:身高 44 且体重 5555 的同学排在最前,接着是身高 44 体重 5050 的同学,然后是身高 33 体重 7070,身高 22 体重 8080,最后是身高 11 体重 6060。将初始队伍中的每一位同学用其在目标队伍中的位置编号代替,初始序列变为 [4,2,3,0,1][4, 2, 3, 0, 1]。通过相邻交换将该序列变为有序的最小操作次数,等于该序列的逆序对数量。序列 [4,2,3,0,1][4, 2, 3, 0, 1] 中的逆序对有:44 与后面的 2,3,0,12,3,0,1 组成 44 对,22 与后面的 0,10,1 组成 22 对,33 与后面的 0,10,1 组成 22 对,共计 88 对。因此最少需要 88 次交换。

数据范围

对于所有测试点,保证 1n30001 \le n \le 30000hi,wi1090 \le h_i, w_i \le 10^9