862. 三元组排序
给定 NN 个三元组 (x,y,z)(x,y,z),其中 xx 是整数,yy 是浮点数,zz 是字符串。
请你按照 xx 从小到大的顺序将这些三元组打印出来。
数据保证不同三元组的 xx 值互不相同。
输入格式
第一行包含整数 NN。
接下来 NN 行,每行包含一个整数 xx,一个浮点数 yy,一个字符串 zz,表示一个三元组,三者之间用空格隔开。
输出格式
共 NN 行,按照 xx 从小到大的顺序,每行输出一个三元组。
注意,所有输入和输出的浮点数 yy 均保留两位小数。
数据范围
1≤N≤100001≤N≤10000,
1≤x,y≤1051≤x,y≤105,
字符串总长度不超过 105105。
输入样例:
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
题解:
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.*;
public class Main {
public static void main(String[] args)throws Exception {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
pair[] arr = new pair[n];
int idx = 0;
while (n -- > 0){
pair p = new pair();
p.x = sc.nextInt();
p.y = sc.nextDouble();
p.z = sc.next();
arr[idx++] = p;
}
Arrays.sort(arr);
for (pair pair : arr) {
bw.write(String.valueOf(pair));
//System.out.println(pair);
}
bw.flush();
}
}
class pair implements Comparable<pair> {
public int x;
public double y;
public String z;
@Override
public int compareTo(pair o) {
return this.x - o.x;
}
@Override
public String toString() {
return String.format("%d %.2f %s\n", x, y, z);
}
}
评论区