Skip to content

Commit 56bab06

Browse files
authored
[백준 11562] 백양로 브레이크 - 최단경로, 플로이드워셜
1 parent 4247859 commit 56bab06

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

hoseok/week80/Boj11562.java

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import java.io.*;
2+
import java.util.*;
3+
4+
class Main {
5+
static int n, m, k;
6+
7+
public static void main(String[] args) throws Exception {
8+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
9+
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
10+
StringTokenizer st = new StringTokenizer(br.readLine());
11+
n = Integer.parseInt(st.nextToken());
12+
m = Integer.parseInt(st.nextToken());
13+
14+
int[][] graph = new int[n + 1][n + 1];
15+
for (int i = 0; i <= n; i++) {
16+
Arrays.fill(graph[i], 1_000_000);
17+
graph[i][i] = 0;
18+
}
19+
for (int i = 0; i < m; i++) {
20+
st = new StringTokenizer(br.readLine());
21+
int u = Integer.parseInt(st.nextToken());
22+
int v = Integer.parseInt(st.nextToken());
23+
int b = Integer.parseInt(st.nextToken());
24+
if (b == 1) {
25+
graph[u][v] = 0;
26+
graph[v][u] = 0;
27+
} else {
28+
graph[u][v] = 0;
29+
graph[v][u] = 1;
30+
}
31+
}
32+
33+
for (int middle = 1; middle <= n; middle++) {
34+
for (int from = 1; from <= n; from++) {
35+
for (int to = 1; to <= n; to++) {
36+
graph[from][to] = Math.min(graph[from][middle] + graph[middle][to], graph[from][to]);
37+
}
38+
}
39+
}
40+
41+
k = Integer.parseInt(br.readLine());
42+
StringBuilder answer = new StringBuilder();
43+
44+
while (k-- > 0) {
45+
st = new StringTokenizer(br.readLine());
46+
int a = Integer.parseInt(st.nextToken());
47+
int b = Integer.parseInt(st.nextToken());
48+
answer.append(graph[a][b]).append("\n");
49+
}
50+
51+
bw.write(answer.toString());
52+
bw.flush();
53+
bw.close();
54+
}
55+
}

0 commit comments

Comments
 (0)