subtask#2错了
#include<bits/stdc++.h>
using namespace std;
const int N = 110;
const int INF = 0x3fffffff;
int dis[N][N];
int n,m;
void floyd(){
for(int k = 0; k < n; k++)
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
if(dis[i][j]>dis[i][k]+dis[k][j])
dis[i][j]=dis[i][k]+dis[k][j];
}
int main(){
memset(dis,0x3f,sizeof(dis));
cin >> n >> m ;
for(int i=0;i<n;i++){
dis[i][i] = 0;
}
while(m--){
int u,v,w;
cin >> u >> v >> w;
dis[u][v] = w;
dis[v][u] = w;
}
floyd();
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++){
cout << dis[i][j] << " " ;
}
cout << endl;
}
return 0;
}