说明
小明和朋友们去爬香山,为美丽的景色所陶醉,想合影留念。如果他们站成一排,男生全部在左(从拍照者的角度),并按照从矮到高的顺序从左到右排,女生全部在右,并按照从高到矮的顺序从左到右排,请问他们合影的效果是什么样的(所有人的身高都不同)?
输入数据
第一行是人数 �n(2≤�≤402≤n≤40,且至少有 11 个男生和 11 个女生)。
后面紧跟 �n 行,每行输入一个人的性别(男male
或女female
)和身高(范围在 [00,22] 内的浮点数,单位米),两个数据之间以空格分隔。
输出数据
n 个浮点数,模拟站好队后,拍照者眼中从左到右每个人的身高。每个浮点数需保留到小数点后 2位,相邻两个数之间用单个空格隔开。
题解
# include <bits/stdc++.h>
# include <algorithm>
# include <iomanip>
using namespace std;
int main()
{int n,nan=0,nv=0;cin>>n;string fm[n];double sg[n],f[n]={},m[n]={};for (int u=0;u<n;u++){cin>>fm[u]>>sg[u];if (fm[u]=="male"){m[nan]=sg[u];nan+=1;}else{f[nv]=sg[u];nv+=1;}}sort(m,m+nan);sort(f,f+nv);for (int u=0;u<nan;u++)cout<<fixed<<setprecision(2)<<m[u]<<" ";for (int u=nv-1;u>=0;u--)cout<<fixed<<setprecision(2)<<f[u]<<" ";return 0;
}