| Task: | Sadonkorjuu | 
| Sender: | Septicuss | 
| Submission time: | 2022-11-06 16:41:52 +0200 | 
| Language: | Java | 
| Status: | READY | 
| Result: | 0 | 
| group | verdict | score | 
|---|---|---|
| #1 | WRONG ANSWER | 0 | 
| #2 | WRONG ANSWER | 0 | 
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.07 s | 1, 2 | details | 
| #2 | ACCEPTED | 0.07 s | 1, 2 | details | 
| #3 | WRONG ANSWER | 0.07 s | 1, 2 | details | 
| #4 | WRONG ANSWER | 0.07 s | 1, 2 | details | 
| #5 | ACCEPTED | 0.07 s | 1, 2 | details | 
| #6 | WRONG ANSWER | 0.18 s | 1, 2 | details | 
| #7 | TIME LIMIT EXCEEDED | -- | 2 | details | 
| #8 | WRONG ANSWER | 0.17 s | 1, 2 | details | 
| #9 | TIME LIMIT EXCEEDED | -- | 2 | details | 
| #10 | WRONG ANSWER | 0.19 s | 1, 2 | details | 
| #11 | TIME LIMIT EXCEEDED | -- | 2 | details | 
| #12 | TIME LIMIT EXCEEDED | -- | 2 | details | 
| #13 | TIME LIMIT EXCEEDED | -- | 2 | details | 
| #14 | TIME LIMIT EXCEEDED | -- | 2 | details | 
| #15 | WRONG ANSWER | 0.17 s | 1, 2 | details | 
| #16 | WRONG ANSWER | 0.17 s | 1, 2 | details | 
| #17 | WRONG ANSWER | 0.18 s | 1, 2 | details | 
| #18 | WRONG ANSWER | 0.17 s | 1, 2 | details | 
| #19 | WRONG ANSWER | 0.17 s | 1, 2 | details | 
| #20 | WRONG ANSWER | 0.18 s | 1, 2 | details | 
| #21 | TIME LIMIT EXCEEDED | -- | 2 | details | 
| #22 | TIME LIMIT EXCEEDED | -- | 2 | details | 
| #23 | TIME LIMIT EXCEEDED | -- | 2 | details | 
| #24 | WRONG ANSWER | 0.17 s | 1, 2 | details | 
| #25 | TIME LIMIT EXCEEDED | -- | 2 | details | 
| #26 | WRONG ANSWER | 0.18 s | 1, 2 | details | 
| #27 | TIME LIMIT EXCEEDED | -- | 2 | details | 
| #28 | WRONG ANSWER | 0.17 s | 1, 2 | details | 
| #29 | TIME LIMIT EXCEEDED | -- | 2 | details | 
| #30 | WRONG ANSWER | 0.17 s | 1, 2 | details | 
| #31 | TIME LIMIT EXCEEDED | -- | 2 | details | 
Compiler report
Note: input/E4301.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details.
Code
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
import java.util.StringTokenizer;
class E4301 {
	static final int K = 1000;
	static int N;
	static int ANS;
	public static void main(String[] args) {
		FastReader reader = new FastReader();
		PrintWriter writer = new PrintWriter(new OutputStreamWriter(System.out));
		N = reader.nextInt();
		final List<Integer> ports = new ArrayList<>();
		final List<Pair<Integer, Integer>> connections[] = new List[N + 1];
		Arrays.fill(connections, new ArrayList<Pair<Integer, Integer>>());
		for (int i = 0; i < N; i++) {
			if (reader.nextInt() == 0)
				ports.add(i);
		}
		for (int i = 0; i < N - 1; i++) {
			int a, b, c;
			a = reader.nextInt();
			b = reader.nextInt();
			c = reader.nextInt();
			connections[a].add(new Pair<Integer, Integer>(b, c));
			connections[b].add(new Pair<Integer, Integer>(a, c));
		}
		reader.close();
		
		for (int port : ports) {
			connections[N].add(new Pair<Integer, Integer>(port, 0));
		}
		int[] distance = new int[N + 1];
		int[] visited = new int[N + 1];
		Arrays.fill(distance, 1001);
		Arrays.fill(visited, 0);
		Queue<Integer> bfs[] = new LinkedList[K + 1];
		Arrays.fill(bfs, new LinkedList<Integer>());
		bfs[0].add(N);
		distance[N] = 0;
		int pos = 0;
		int high = 1;
		while (high > 0) {
			int index = pos % K + 1;
			while (bfs[index].isEmpty()) {
				pos++;
			}
			int u = bfs[index].remove();
			high -= 1;
			if (visited[u] != 0)
				continue;
			visited[u] = 1;
			for (Pair<Integer, Integer> edge : connections[u]) {
				int cost = edge.second;
				int w = edge.first;
				if (distance[u] + cost < distance[w]) {
					if (distance[w] == K + 1) {
						ANS += distance[u] + cost;
					} else {
						ANS -= distance[w];
						ANS += distance[u] + cost;
					}
					distance[w] = distance[u] + cost;
					bfs[distance[w] % (K + 1)].add(w);
					high++;
				}
			}
		}
		
		writer.println(ANS);
		writer.flush();
		writer.close();
	}
	static class Pair<K, V> {
		K first;
		V second;
		public Pair(K first, V second) {
			this.first = first;
			this.second = second;
		}
	}
	static class FastReader {
		private BufferedReader br;
		private StringTokenizer st;
		public FastReader() {
			br = new BufferedReader(new InputStreamReader(System.in));
		}
		void close() {
			try {
				br.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
			st = null;
			br = null;
		}
		String next() {
			while (st == null || !st.hasMoreElements()) {
				try {
					st = new StringTokenizer(br.readLine());
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			return st.nextToken();
		}
		String nextLine() {
			String str = "";
			try {
				str = br.readLine();
			} catch (IOException e) {
				e.printStackTrace();
			}
			return str;
		}
		int nextInt() {
			return Integer.parseInt(next());
		}
		BigInteger nextBigInteger() {
			return new BigInteger(next());
		}
		double nextDouble() {
			return Double.parseDouble(next());
		}
		long nextLong() {
			return Long.parseLong(next());
		}
	}
}Test details
Test 1
Group: 1, 2
Verdict: ACCEPTED
| input | 
|---|
| 1 0  | 
| correct output | 
|---|
| 0 | 
| user output | 
|---|
| 0 | 
Test 2
Group: 1, 2
Verdict: ACCEPTED
| input | 
|---|
| 5 0 0 0 0 0 1 2 1 2 3 2 3 4 3 ...  | 
| correct output | 
|---|
| 0 | 
| user output | 
|---|
| 0 | 
Test 3
Group: 1, 2
Verdict: WRONG ANSWER
| input | 
|---|
| 4 1 0 1 1 1 2 10 2 3 20 2 4 30  | 
| correct output | 
|---|
| 60 | 
| user output | 
|---|
| 30 | 
Test 4
Group: 1, 2
Verdict: WRONG ANSWER
| input | 
|---|
| 5 0 1 1 1 0 1 2 10 2 3 20 3 4 30 ...  | 
| correct output | 
|---|
| 80 | 
| user output | 
|---|
| 40 | 
Test 5
Group: 1, 2
Verdict: ACCEPTED
| input | 
|---|
| 5 0 1 0 1 1 1 2 1 2 3 5 3 4 3 ...  | 
| correct output | 
|---|
| 6 | 
| user output | 
|---|
| 6 | 
Test 6
Group: 1, 2
Verdict: WRONG ANSWER
| input | 
|---|
| 1000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...  | 
| correct output | 
|---|
| 5506363 | 
| user output | 
|---|
| 411408 | 
Test 7
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 200000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...  | 
| correct output | 
|---|
| 1795118520 | 
| user output | 
|---|
| (empty) | 
Test 8
Group: 1, 2
Verdict: WRONG ANSWER
| input | 
|---|
| 1000 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 ...  | 
| correct output | 
|---|
| 293576 | 
| user output | 
|---|
| 192342 | 
Test 9
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 200000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...  | 
| correct output | 
|---|
| 816932444 | 
| user output | 
|---|
| (empty) | 
Test 10
Group: 1, 2
Verdict: WRONG ANSWER
| input | 
|---|
| 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...  | 
| correct output | 
|---|
| 3089 | 
| user output | 
|---|
| 3844 | 
Test 11
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...  | 
| correct output | 
|---|
| 40839 | 
| user output | 
|---|
| (empty) | 
Test 12
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 200000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...  | 
| correct output | 
|---|
| 5683983203973 | 
| user output | 
|---|
| (empty) | 
Test 13
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 200000 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 ...  | 
| correct output | 
|---|
| 58572993 | 
| user output | 
|---|
| (empty) | 
Test 14
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...  | 
| correct output | 
|---|
| 32755 | 
| user output | 
|---|
| (empty) | 
Test 15
Group: 1, 2
Verdict: WRONG ANSWER
| input | 
|---|
| 1000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...  | 
| correct output | 
|---|
| 126238345 | 
| user output | 
|---|
| 339917 | 
Test 16
Group: 1, 2
Verdict: WRONG ANSWER
| input | 
|---|
| 1000 0 0 0 1 0 1 1 1 0 0 1 0 1 1 0 ...  | 
| correct output | 
|---|
| 278678 | 
| user output | 
|---|
| 161826 | 
Test 17
Group: 1, 2
Verdict: WRONG ANSWER
| input | 
|---|
| 1000 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 ...  | 
| correct output | 
|---|
| 34929 | 
| user output | 
|---|
| 32959 | 
Test 18
Group: 1, 2
Verdict: WRONG ANSWER
| input | 
|---|
| 1000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...  | 
| correct output | 
|---|
| 1543963 | 
| user output | 
|---|
| 327172 | 
Test 19
Group: 1, 2
Verdict: WRONG ANSWER
| input | 
|---|
| 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...  | 
| correct output | 
|---|
| 39606 | 
| user output | 
|---|
| 37000 | 
Test 20
Group: 1, 2
Verdict: WRONG ANSWER
| input | 
|---|
| 1000 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 ...  | 
| correct output | 
|---|
| 321598 | 
| user output | 
|---|
| 194514 | 
Test 21
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 200000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...  | 
| correct output | 
|---|
| 978670626 | 
| user output | 
|---|
| (empty) | 
Test 22
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 200000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...  | 
| correct output | 
|---|
| 375218 | 
| user output | 
|---|
| (empty) | 
Test 23
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 200000 1 1 1 1 0 0 0 0 0 1 0 1 0 1 1 ...  | 
| correct output | 
|---|
| 60422556 | 
| user output | 
|---|
| (empty) | 
Test 24
Group: 1, 2
Verdict: WRONG ANSWER
| input | 
|---|
| 1000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...  | 
| correct output | 
|---|
| 291990 | 
| user output | 
|---|
| 123798 | 
Test 25
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 200000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...  | 
| correct output | 
|---|
| 59607954 | 
| user output | 
|---|
| (empty) | 
Test 26
Group: 1, 2
Verdict: WRONG ANSWER
| input | 
|---|
| 1000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...  | 
| correct output | 
|---|
| 990 | 
| user output | 
|---|
| 500 | 
Test 27
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 200000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...  | 
| correct output | 
|---|
| 199982 | 
| user output | 
|---|
| (empty) | 
Test 28
Group: 1, 2
Verdict: WRONG ANSWER
| input | 
|---|
| 1000 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...  | 
| correct output | 
|---|
| 7987 | 
| user output | 
|---|
| 999 | 
Test 29
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 200000 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...  | 
| correct output | 
|---|
| 3137875 | 
| user output | 
|---|
| (empty) | 
Test 30
Group: 1, 2
Verdict: WRONG ANSWER
| input | 
|---|
| 1000 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...  | 
| correct output | 
|---|
| 4657693 | 
| user output | 
|---|
| 378218 | 
Test 31
Group: 2
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 200000 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...  | 
| correct output | 
|---|
| 1652889357 | 
| user output | 
|---|
| (empty) | 
