今天是近日难得的晴天,于是拍黄瓜和朋友们决定去郊游爬香山。大家爬到山顶时,纷纷为美丽的景色所陶醉,想一起合影留念。
拍黄瓜认为比较美观的站位是:站成一排,男生全部在左,并按照从矮到高的顺序从左到右排,女生全部在右,并按照从高到矮的顺序从左到右排。
咔嚓一声合影拍完了,但一周后才正式出成片。拍黄瓜想提前知道合影的效果大致是什么样,你可以编写一个程序模拟他们的站位吗?(所有人的身高都不同)
输入格式
第一行是人数?n(2≤n≤40),且至少有1个男生和1个女生)。
后面紧跟?n?行,每行输入一个人的性别(男male 或女female )和身高(范围在[0,2]?内的浮点数,单位米),两个数据之间以空格分隔。
输出格式
n个浮点数,模拟站好队后,拍照者眼中从左到右每个人的身高。每个浮点数需保留到小数点后 2?位,相邻两个数之间用单个空格隔开。
Sample Input
6
male 1.72
male 1.78
female 1.61
male 1.65
female 1.70
female 1.56
Sample Output
1.65 1.72 1.78 1.70 1.61 1.56
Time limit | 1000 ms | Memory | 31072 kB |
话不多说,上代码:
#include<bits/stdc++.h>
using namespace std;
string a[41];
float b[41],c[41],d[41];
int main() {
int n,k=1,f=1;
cin>>n;
for(int i=1; i<=n; i++) {
cin>>a[i]>>b[i];
if(a[i]=="male") {
c[k]=b[i];
k++;
} else {
d[f]=b[i];
f++;
}
}
sort(c+1,c+1+k);
sort(d+1,d+1+f);
for(int i=2; i<=k; i++){
printf("%.2lf",c[i]);
cout<<" ";
}
for(int i=f; i>1;i--){
printf("%.2lf",d[i]);
cout<<" ";
}
}
|