目 录CONTENT

文章目录

862. 三元组排序

Gz
Gz
2022-07-01 / 0 评论 / 0 点赞 / 272 阅读 / 1,151 字 / 正在检测是否收录...

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);
    }
}
0

评论区