https://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm
1 int map[101][101];
2 int n,m;
3 void init()
4 {
5 scanf("%d%d",&n,&m);
6 for(int i=1;i<=n;i++)
7 {
8 for(int j=1;j<=n;j++)
9 {
10 map[i][j]=1000000000;
11 if(i==j)
12 {
13 map[i][j]=0;
14 }
15 }
16 }
17 for(int i=1;i<=m;i++)
18 {
19 int x,y,z;
20 scanf("%d%d%d",&x,&y,&z);
21 map[x][y]=z;
22 map[y][x]=z;
23 }
24 return;
25 }
26 void floyd()
27 {
28 for(int k=1;k<=n;k++)
29 {
30 for(int i=1;i<=n;i++)
31 {
32 for(int j=1;j<=n;j++)
33 {
34 map[i][j]=min(map[i][j],map[i][k]+map[k][j]);
35 }
36 }
37 }
38 return;
39 }