返回首页 返回题库

排序

C++ 简单 GESP四级真题 #排序#逆序对

题目描述

题面描述

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

输入格式

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

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

输出格式

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

样例1

输入:

5
1 60
3 70
2 80
4 55
4 50

输出:

8

样例2

输入:

5
4 0
4 0
2 0
3 0
1 0

输出:

1

数据范围

对于所有测试点,保证 ,。

时间限制

1.0 s

内存限制

512.0 MB

💡 查看提示(先自己想一想再看)
考察知识点:自定义排序、逆序对计数。解题思路:首先按照题目要求的规则对学生序列进行排序,得到目标序列。由于每次只能交换相邻元素,最少交换次数等于原序列转换为目标序列所需的逆序对数量,可通过双重循环统计逆序对。注意排序规则是身高降序,身高相同时体重降序。
⚙ 开始做这道题 0 人做过 · 0 收藏 · 9 浏览

讨论(0)