问题标题: 酷町堂:4219   高矮个互换

0
0
已解决
周旭东
周旭东
初级光能
初级光能

4219   高矮个互换经验值:800

题目描述 Description

n个人排成一队,寻找队伍中最高的人和最矮的人(如果有多个最高/最矮的人,选择最左边的),让他们俩交换位置,输出交换之后队伍中人们的身高。

输入描述 Input Description

第一行,一个正整数n
第二行,n个正整数,表示一队n个人的身高

输出描述 Output Description

一行n个正整数,表示交换之后的队伍身高,用空格隔开。

样例输入 Sample Input

6 130 150 130 140 170 160

样例输出 Sample Output

170 150 130 140 130 160

数据范围及提示 Data Size & Hint

n<=100,100<=身高<=200

 

#include<bits/stdc++.h>
#include<algorithm>
#include<cstdio>
#include<climits>
#include<queue>
using namespace std;
int n,a[105],b[105],x,y,l,r;
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        b[i]=a[i];
    } 
    sort(a+1,a+n+1);
    x=a[1],y=a[n];
    while(1){
        l=1,r=n;
        if(b[l]==b[x]&&b[r]==b[n])
        {
            swap(b[l],b[r]);
            break;
        }
        else {
            l++;
            r--;
        }
    }
    for(int i=1;i<=n;i++)
        cout<<b[i]<<" ";
    return 0;
}

为什么错了,请帮忙找一找,蟹蟹


0
已采纳
赵逸凡
赵逸凡
初级启示者
初级启示者

求最高和最矮的不要排序,直接找,排序会影响原来顺序

0
我要回答