Submission #71841385


Source Code Expand

import java.io.*;
import java.util.*;

public class Main {
    static class Edge {
        int to;
        int weight;

        public Edge(int to, int weight) {
            this.to = to;
            this.weight = weight;
        }
    }

    static ArrayList<Edge>[] adj;
    static StringBuilder output = new StringBuilder();

    public static void main(String[] args) {
        new Thread(null, new Runnable() {
            public void run() {
                try {
                    solve();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }, "1", 1 << 27).start();
    }

    public static void solve() throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int N = Integer.parseInt(st.nextToken());

        adj = new ArrayList[N + 1];
        for (int i = 0; i <= N; i++) {
            adj[i] = new ArrayList<>();
        }

        for (int i = 1; i <= N; i++) {
            String line = br.readLine();
            while (line != null && line.trim().isEmpty()) {
                line = br.readLine();
            }
            if (line == null) break;
            
            st = new StringTokenizer(line);
            int parent = Integer.parseInt(st.nextToken());
            int weight = Integer.parseInt(st.nextToken());

            adj[parent].add(new Edge(i, weight));
        }

        ArrayList<Integer> rootList = new ArrayList<>();
        rootList.add(0);
        processLayer(rootList);

        System.out.println(output.toString().trim());
    }

    static void processLayer(ArrayList<Integer> currentNodes) {
        Collections.sort(currentNodes);
        
        for (int u : currentNodes) {
            if (u != 0) {
                output.append(u).append(" ");
            }
        }

        class Transition implements Comparable<Transition> {
            long weight;
            int childNode;

            public Transition(long w, int c) {
                weight = w;
                childNode = c;
            }

            @Override
            public int compareTo(Transition o) {
                return Long.compare(this.weight, o.weight);
            }
        }

        ArrayList<Transition> allTransitions = new ArrayList<>();

        for (int u : currentNodes) {
            for (Edge e : adj[u]) {
                allTransitions.add(new Transition(e.weight, e.to));
            }
        }

        Collections.sort(allTransitions);

        int n = allTransitions.size();
        for (int i = 0; i < n; ) {
            long currentWeight = allTransitions.get(i).weight;
            ArrayList<Integer> nextNodes = new ArrayList<>();

            while (i < n && allTransitions.get(i).weight == currentWeight) {
                nextNodes.add(allTransitions.get(i).childNode);
                i++;
            }

            processLayer(nextNodes);
        }
    }
}

Submission Info

Submission Time
Task E - Sort Arrays
User addy
Language Java24 (OpenJDK 24.0.2)
Score 450
Code Size 3125 Byte
Status AC
Exec Time 824 ms
Memory 212792 KiB

Compile Error

Note: Main.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 450 / 450
Status
AC × 3
AC × 48
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 01_test_36.txt, 01_test_37.txt, 01_test_38.txt, 01_test_39.txt, 01_test_40.txt, 01_test_41.txt, 01_test_42.txt, 01_test_43.txt, 01_test_44.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 45 ms 38132 KiB
00_sample_01.txt AC 40 ms 38376 KiB
00_sample_02.txt AC 40 ms 38264 KiB
01_test_00.txt AC 227 ms 62660 KiB
01_test_01.txt AC 630 ms 101960 KiB
01_test_02.txt AC 502 ms 90336 KiB
01_test_03.txt AC 697 ms 112440 KiB
01_test_04.txt AC 480 ms 83168 KiB
01_test_05.txt AC 664 ms 112588 KiB
01_test_06.txt AC 291 ms 73220 KiB
01_test_07.txt AC 683 ms 112776 KiB
01_test_08.txt AC 144 ms 50920 KiB
01_test_09.txt AC 580 ms 101576 KiB
01_test_10.txt AC 603 ms 98500 KiB
01_test_11.txt AC 607 ms 99440 KiB
01_test_12.txt AC 184 ms 60940 KiB
01_test_13.txt AC 619 ms 99284 KiB
01_test_14.txt AC 303 ms 78128 KiB
01_test_15.txt AC 629 ms 99108 KiB
01_test_16.txt AC 429 ms 83612 KiB
01_test_17.txt AC 657 ms 99340 KiB
01_test_18.txt AC 148 ms 51476 KiB
01_test_19.txt AC 625 ms 99376 KiB
01_test_20.txt AC 367 ms 97200 KiB
01_test_21.txt AC 416 ms 100512 KiB
01_test_22.txt AC 824 ms 200068 KiB
01_test_23.txt AC 489 ms 160832 KiB
01_test_24.txt AC 421 ms 95992 KiB
01_test_25.txt AC 384 ms 89824 KiB
01_test_26.txt AC 716 ms 212792 KiB
01_test_27.txt AC 594 ms 161152 KiB
01_test_28.txt AC 455 ms 95748 KiB
01_test_29.txt AC 441 ms 106328 KiB
01_test_30.txt AC 703 ms 212124 KiB
01_test_31.txt AC 469 ms 158404 KiB
01_test_32.txt AC 478 ms 95624 KiB
01_test_33.txt AC 430 ms 97780 KiB
01_test_34.txt AC 704 ms 210076 KiB
01_test_35.txt AC 535 ms 160492 KiB
01_test_36.txt AC 471 ms 88672 KiB
01_test_37.txt AC 466 ms 107240 KiB
01_test_38.txt AC 769 ms 201368 KiB
01_test_39.txt AC 576 ms 160144 KiB
01_test_40.txt AC 546 ms 90628 KiB
01_test_41.txt AC 468 ms 101432 KiB
01_test_42.txt AC 797 ms 201124 KiB
01_test_43.txt AC 702 ms 159420 KiB
01_test_44.txt AC 41 ms 38164 KiB