728x90
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class algo_1263_김어진 {
public static void main(String[] args) throws Exception {
System.setIn(new FileInputStream("input.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
st = new StringTokenizer(br.readLine()," ");
int T;
T= Integer.parseInt(st.nextToken());
int INF = 100000000;
for(int test_case = 1; test_case <= T; test_case++)
{
st = new StringTokenizer(br.readLine()," ");
int N =Integer.parseInt(st.nextToken());
int[][] graph = new int[N][N];
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
graph[i][j]=Integer.parseInt(st.nextToken());
}
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if(graph[i][j]==0 && i!=j) {
graph[i][j]=INF;
}
}
}
for (int k = 0; k < N; k++) {
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
graph[i][j] = Math.min(graph[i][j], graph[i][k]+graph[k][j]);
}
}
}
int minValue = Integer.MAX_VALUE;
for (int i = 0; i < N; i++) {
int count = 0;
for (int j = 0; j < N; j++) {
if(graph[i][j]!=INF) {
count+= graph[i][j];
}
}
if(minValue>count) {
minValue=count;
}
}
System.out.printf("#%d %d\n",test_case,minValue);
}
}
}
728x90
'알고리즘 > SW Expert' 카테고리의 다른 글
SW Expert 보급로 (자바) (0) | 2021.09.30 |
---|---|
SW expert 3124 최소 스패닝 트리 (자바) (0) | 2021.09.16 |
SW Expert 3307 최장 증가 부분수열 (자바) (0) | 2021.09.16 |
1251 하나로 (0) | 2021.08.25 |