A7867.排队照相题解
2026-05-16 07:09:28
发布于:广东
2阅读
0回复
0点赞
纯数组(array+vector)+排序sort:
#include<bits/stdc++.h>
using namespace std;
int boy[105], girl[105];
int main() {
int n;
cin >> n;
vector <int> h(n);
int boys = 0, girls = 0;
for (int i = 0; i < n; i++) {
cin >> h[i];
if (h[i] > 0) {
boys++;
boy[boys] = h[i];
} else {
girls++;
girl[girls] = -h[i]; // 这里变成正数,则下面排序应当加greater<int>(),否则girl[girls] = h[i];
}
}
sort(boy + 1, boy + 1 + boys);
sort(girl + 1, girl + 1 + girls, greater<int>()); // sort(girl+1,girl+1+girls);
for (int i = 1; i <= boys; i++)
cout << boy[i] << ' ';
for (int i = 1; i <= girls; i++) // for (int i=girls;i>0;i--)
cout << -girl[i] << ' '; // cout<<girl[i]<<' ';
return 0;
}
普及一下:greater<int>();
- sort(起始位置, 结束位置) → 升序(小 → 大)
- sort(起始位置, 结束位置, greater<int>()) → 降序(大 → 小)
这里空空如也





有帮助,赞一个