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 |
|
|
| 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 |