社区讨论

错了两个测试点,有java佬看看哪里可能有问题吗

P1223排队接水参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@m293uzem
此快照首次捕获于
2024/10/14 22:24
去年
此快照最后确认于
2025/11/04 17:10
4 个月前
查看原帖
JAVA
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] times = new int[n];
        int[] originalsat = new int[n];
        Integer[] indexTime = new Integer[n];
        for (int i = 0; i < n; i++) {
            times[i] = scanner.nextInt();
            originalsat[i] = i + 1;
        }

        for (int i = 0; i < n; i++) {
            indexTime[i] = i;
        }
        Arrays.sort(indexTime, Comparator.comparingInt(a -> times[a]));

        int totalWaiting = 0;
        StringBuilder order = new StringBuilder();
        for (int i = 0; i < n; i++) {
            totalWaiting += times[indexTime[i]] * (n - i - 1);
            order.append(originalsat[indexTime[i]]).append(" ");
        }

        double aveWaiting = (double) totalWaiting / n;

        System.out.println(order);
        System.out.printf("%.2f", aveWaiting);

        scanner.close();
    }
}

回复

0 条回复,欢迎继续交流。

正在加载回复...