Skip to content

Commit 8419671

Browse files
[20251208] BOJ / G5 / 호석이 두마리 치킨 / 설진영
1 parent 3ef5047 commit 8419671

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
```java
2+
import java.io.*;
3+
import java.util.*;
4+
5+
public class Main {
6+
public static void main(String[] args) throws IOException {
7+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
8+
StringTokenizer st = new StringTokenizer(br.readLine());
9+
10+
int n = Integer.parseInt(st.nextToken());
11+
int m = Integer.parseInt(st.nextToken());
12+
13+
int[][] dist = new int[n + 1][n + 1];
14+
int INF = 1000000;
15+
16+
for (int i = 1; i <= n; i++) {
17+
Arrays.fill(dist[i], INF);
18+
dist[i][i] = 0;
19+
}
20+
21+
for (int i = 0; i < m; i++) {
22+
st = new StringTokenizer(br.readLine());
23+
int a = Integer.parseInt(st.nextToken());
24+
int b = Integer.parseInt(st.nextToken());
25+
dist[a][b] = 1;
26+
dist[b][a] = 1;
27+
}
28+
29+
for (int k = 1; k <= n; k++) {
30+
for (int i = 1; i <= n; i++) {
31+
for (int j = 1; j <= n; j++) {
32+
if (dist[i][j] > dist[i][k] + dist[k][j]) {
33+
dist[i][j] = dist[i][k] + dist[k][j];
34+
}
35+
}
36+
}
37+
}
38+
39+
int ansI = 0, ansJ = 0, ansSum = Integer.MAX_VALUE;
40+
41+
for (int i = 1; i <= n; i++) {
42+
for (int j = i + 1; j <= n; j++) {
43+
int sum = 0;
44+
for (int k = 1; k <= n; k++) {
45+
sum += Math.min(dist[k][i], dist[k][j]) * 2;
46+
}
47+
if (sum < ansSum) {
48+
ansSum = sum;
49+
ansI = i;
50+
ansJ = j;
51+
}
52+
}
53+
}
54+
55+
System.out.println(ansI + " " + ansJ + " " + ansSum);
56+
}
57+
}
58+
```

0 commit comments

Comments
 (0)