求调,别嘲笑
  • 板块灌水区
  • 楼主EARS_CHEN
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/17 21:47
  • 上次更新2024/3/18 12:00:04
查看原帖
求调,别嘲笑
1080324
EARS_CHEN楼主2024/3/17 21:47

题目描述

小明的班级中有 n 个同学,现在要进行集体合影,合影时,老师站在中间,男同学均站在老师左侧从左至右按身高升序排列,女同学均站在老师右侧,按身高降序排列。现在请你帮老师排好队伍。

提示

数据范围:

1≤n≤100,−200<h<200,h!=0

样例说明:

男同学为145 140 180 ,给男同学从小到大排序放在老师左边,女同学为-155 和-150,从小到大放在老师右边。

输入格式

一行 n 个整数 h,表示每个同学的身高,如果是正数,表示男同学,如果是负数,表示女同学

输出格式

n 个整数,表示排好序的队伍

样例组输入#1

5
145 -155 140 180  -150

样例组输出#1

140 145 180 -155 -150

我的代码

#include<bits/stdc++.h>
using namespace std;
int main(){

    int n;
    cin >> n;

    vector<int> heights(n);
    for (int i = 0; i < n; i++) {
        cin >> heights[i];
    }

    vector<int> maleHeights;
    vector<int> femaleHeights;
    for (int i = 0; i < n; i++) {
        if (heights[i] > 0) {
            maleHeights.push_back(heights[i]);
        } else {
            femaleHeights.push_back(heights[i]);
        }
    }

    sort(maleHeights.begin(), maleHeights.end());
    sort(femaleHeights.begin(), femaleHeights.end(), greater<int>());

    vector<int> queue;
    for (int i = 0; i < maleHeights.size(); i++) {
        queue.push_back(maleHeights[i]);
    }
    for (int i = 0; i < femaleHeights.size(); i++) {
        queue.push_back(femaleHeights[i]);
    }

    for (int i = 0; i < n; i++) {
        cout << queue[i] << " ";
    }

    return 0;
}
    
    
    
    
    
    

谢谢

2024/3/17 21:47
加载中...