小明的班级中有 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;
}
谢谢