《B4361 [GESP202506 四级] 排序》
题目背景对应的选择、判断题试题 - GESP 202506 C 四级 - 洛谷有题题目描述体育课上有 n 名同学排成一队从前往后数第 i 位同学的身高为 hi​体重为 wi​。目前排成的队伍看起来参差不齐老师希望同学们能按照身高从高到低的顺序排队如果身高相同则按照体重从重到轻排序。在调整队伍时每次只能交换相邻两位同学的位置。老师想知道最少需要多少次交换操作才能将队伍调整成目标顺序。输入格式第一行一个正整数 n表示队伍人数。接下来 n 行每行两个正整数 hi​ 和 wi​分别表示第 i 位同学的身高和体重。输出格式输出一行一个整数表示最少需要的交换次数。输入输出样例输入 #1复制5 1 60 3 70 2 80 4 55 4 50输出 #1复制8输入 #2复制5 4 0 4 0 2 0 3 0 1 0输出 #2复制1说明/提示对于所有测试点保证 1≤n≤30000≤hi​,wi​≤109。代码实现#include iostream #include vector #include algorithm using namespace std; struct Person { long long h,w; }; bool cmp(const Person a,const Person b) { if(a.h!b.h) return a.hb.h; return a.wb.w; } int main() { int n; cinn; vectorPerson ori(n),srt; for(int i0;in;i) { cinori[i].hori[i].w; } srtori; sort(srt.begin(),srt.end(),cmp); vectorint a(n); for(int i0;in;i) { for(int j0;jn;j) { if(ori[i].hsrt[j].hori[i].wsrt[j].w) { a[i]j; break; } } } long long ans0; for(int i0;in;i) { for(int ji1;jn;j) { if(a[i]a[j]) ans; } } coutans; return 0; }

相关新闻