GESP2025年6月认证C++四级( 第三部分编程题(2)排序)

参考程序:

cpp 复制代码
#include <cstdio>
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;

int main() {
    int n, ans = 0;

    // 读取学生人数
    scanf("%d", &n);

    // 用 vector 存储每个学生的身高和体重(h, w)
    vector<pair<int, int>> a(n);
    for (int i = 0; i < n; i++)
        scanf("%d%d", &a[i].first, &a[i].second);  // 读入每个学生的 h 和 w

    // 枚举所有 i < j 的学生对
    for (int i = 0; i < n; i++)
        for (int j = i + 1; j < n; j++)
            // 如果 a[i] < a[j],说明 i 应该排在 j 的后面
            // 但现在在前面,表示出现了"逆序对",需要一次交换
            if (a[i] < a[j])
                ans++;

    // 输出最少交换次数
    cout << ans << '\n';
    return 0;
}
相关推荐
感哥3 小时前
C++ 多重继承
c++
博笙困了3 小时前
C++提高编程 4.0
c++
扑克中的黑桃A4 小时前
[C语言]第三章-数据类型&变量
c++
感哥4 小时前
C++ std::string
c++
感哥21 小时前
C++ 面向对象
c++
沐怡旸1 天前
【底层机制】std::shared_ptr解决的痛点?是什么?如何实现?如何正确用?
c++·面试
感哥1 天前
C++ STL 常用算法
c++
saltymilk2 天前
C++ 模板参数推导问题小记(模板类的模板构造函数)
c++·模板元编程
感哥2 天前
C++ lambda 匿名函数
c++
沐怡旸2 天前
【底层机制】std::unique_ptr 解决的痛点?是什么?如何实现?怎么正确使用?
c++·面试