0
已解决
周明轩
资深光能
资深光能
题目描述 Description
学习举行国际象棋比赛,经过积分赛后,N个选手都有自己的积分,现选排名靠前的N(偶数)个人,捉对再战。为了增加比赛的对抗性,要求对弈的选手势均力敌(量化描述:各组分值之和最小)。请你编程安排对弈分组。
输入描述 Input Description
第一行 一个偶数N(N﹤=1000),表示N个选手参加比赛;
第二行 N个正整数,第i个数表示,表示编号为i的选手的积分。
输出描述 Output Description
二分之N行,表示对弈分组的情况。每行两个整数,为某一对弈分组中两个选手的编号。我们做这样的约定:两位对弈选手积分总和大的组排在前面;每一组中,分值高的排在前面,若分值相同,编号小的,排前面。
样例输入 Sample Input
6 60 80 85 60 70 90
样例输出 Sample Output
6 3 2 5 1 4
求思路
0
已采纳
胡钰妍
资深光能
资深光能
for(int i=1;i<=n;i++) { cin>>a[i]; b[i]=d; d++; } for(int i=1;i<=n-1;i++) { for(int j=i+1;j<=n;j++) { if(a[i]<a[j]) { swap(a[i],a[j]); swap(b[i],b[j]); } if(a[i]==a[j]&&b[i]>b[j]) { swap(b[i],b[j]); } } } for(int i=1;i<=n;i++) { cout<<b[i]<<" "<<b[i+1]<<endl; i++;
核心,供参考,望采纳
0
0
0