题目描述
给定N个三元组(x, y, z),其中x是整数,y是浮点数,z是字符串。
请你按照x从小到大的顺序将这些三元组打印出来。
数据保证不同三元组的x值互不相同。
输入格式
第一行包含整数N。
接下来N行,每行包含一个整数x,一个浮点数y,一个字符串z,表示一个三元组,三者之间用空格隔开。
输出格式
共N行,按照x从小到大的顺序,每行输出一个三元组。
注意,所有输入和输出的浮点数y均保留两位小数。
数据范围
1≤N≤10000,
1≤x,y≤105,
字符串总长度不超过100000.
样例
输入样例:
5
32 1.36 nsyiupnnhc
18 4.53 fmofzwrah
33 4.86 wzuymbm
1 3.93 gtnrwcebt
31 4.53 gcllxioc
输出样例:
1 3.93 gtnrwcebt
18 4.53 fmofzwrah
31 4.53 gcllxioc
32 1.36 nsyiupnnhc
33 4.86 wzuymbm
算法1
使用stl的 map作为索引 pair记录参数对
那么数据结构就是 map[HTML_REMOVED]> data; 自带关键字排序功能
其他的就是要注意输入输出了 还有设置小数点后的显示位数
cout << fixed << setprecision(2)
C++ 代码
#include <iostream>
#include <map>
#include <string>
#include <iomanip>
using namespace std;
map<int,pair<float,string>> data;
int main()
{
int i = 0; int n = 0; double f;string s;
cin >> i;
for(int j = 0; j < i;j++){
cin >> n;
cin >> f;
cin >> s;
pair<double,string> p(f,s);
data[n] = p;
}
for(auto& e:data){
cout << fixed << setprecision(2) << e.first << " "<< e.second.first<<" " << e.second.second << endl;;
}
return 0;
}