문제

코드
import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;
public class q11404 {
public static void main(String[] args) throws IOException {
int INF = 10000000;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
int m = Integer.parseInt(br.readLine());
int[][] dist = new int[n+1][n+1];
for(int k=0; k<dist.length; k++) Arrays.fill(dist[k], INF);
StringTokenizer tk;
for(int k=0; k<m; k++) {
tk = new StringTokenizer(br.readLine(), " ");
int i = Integer.parseInt(tk.nextToken());
int j = Integer.parseInt(tk.nextToken());
int w = Integer.parseInt(tk.nextToken());
if(dist[i][j] != INF) {
dist[i][j] = Math.min(dist[i][j], w);
} else {
dist[i][j] = w;
}
}
for(int y=1; y<n+1; y++) {
for(int x=1; x<n+1; x++) {
for(int z=1; z<n+1; z++) {
if(x == z) continue;
if(dist[x][z] > dist[x][y] + dist[y][z]) {
dist[x][z] = dist[x][y] + dist[y][z];
}
}
}
}
for(int i=1; i<n+1; i++) {
for(int j=1; j<n+1; j++) {
if(dist[i][j] == INF) bw.write("0 ");
else bw.write(dist[i][j] + " ");
}
bw.write("\n");
}
bw.flush();
}
}