Task: | Tietoverkko |
Sender: | andreibe |
Submission time: | 2021-10-08 21:54:25 +0300 |
Language: | Java |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | WRONG ANSWER | 0 |
#2 | WRONG ANSWER | 0 |
#3 | WRONG ANSWER | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | WRONG ANSWER | 0.16 s | 1, 2, 3 | details |
#2 | WRONG ANSWER | 0.74 s | 2, 3 | details |
#3 | TIME LIMIT EXCEEDED | -- | 3 | details |
Code
import java.util.ArrayList; import java.util.Scanner; class Pair { public int key; public int value; public Pair(int key, int value) { this.key = key; this.value = value; } } public class Main { static ArrayList<ArrayList<Pair>> tree; static int n; static Pair[] paths; public static void main(String[] args) { Scanner input = new Scanner(System.in); n = input.nextInt(); tree = new ArrayList<>(n+1); for (int i = 0; i < n+1; i++) { tree.add(new ArrayList<>()); } paths = new Pair[n+1]; for (int i = 0; i < n-1; i++) { int a = Integer.parseInt(input.next()); int b = Integer.parseInt(input.next()); int x = Integer.parseInt(input.next()); ArrayList<Pair> neighbors = tree.get(a); neighbors.add(new Pair(b,x)); } count(1,1,Integer.MAX_VALUE); long total = 0; for (Pair path : paths) { if (path != null) { total += path.value; } } System.out.println(total); } private static final ArrayList<Pair> added = new ArrayList<>(); private static final ArrayList<Integer> before = new ArrayList<>(); private static void count(int index, int lastIndex,int paino) { if (lastIndex == 0) { return; } ArrayList<Pair> naapurit = tree.get(index); paths[index] = new Pair(Integer.MAX_VALUE,0); added.add(paths[index]); before.add(paino); boolean b=false; for (Pair naapuri : naapurit) { Pair pair = paths[naapuri.key]; //onko käyty ennen if (pair == null) { //Ei olla käyty ennen b=true; for (int i = 0; i < added.size(); i++) { Pair path = added.get(i); before.set(i,path.key); path.key = Math.min(path.key,naapuri.value); path.value += path.key; } count(naapuri.key,index,naapuri.value); } } if (!b) { for (int i = 0; i < added.size(); i++) { added.get(i).key = before.get(i); } } } }
Test details
Test 1
Group: 1, 2, 3
Verdict: WRONG ANSWER
input |
---|
100 1 2 74 1 3 100 2 4 50 3 5 40 ... |
correct output |
---|
88687 |
user output |
---|
39120 |
Test 2
Group: 2, 3
Verdict: WRONG ANSWER
input |
---|
5000 1 2 613084013 1 3 832364259 2 4 411999902 3 5 989696303 ... |
correct output |
---|
1103702320243776 |
user output |
---|
68791006761 |
Test 3
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
200000 1 2 613084013 1 3 832364259 2 4 411999902 3 5 989696303 ... |
correct output |
---|
1080549209850010931 |
user output |
---|
(empty) |