File tree Expand file tree Collapse file tree 1 file changed +58
-0
lines changed
Expand file tree Collapse file tree 1 file changed +58
-0
lines changed Original file line number Diff line number Diff line change 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+ ```
You can’t perform that action at this time.
0 commit comments