#include<bits/stdc++.h>
using namespace std;
int n,m,u,v,w,dp[101][101];
int main(){
scanf("%d%d",&m,&n);
memset(dp,0x3f,sizeof(dp));
for(int i=1;i<=n;i++){
dp[i][i]=0;
}
for(int i=1;i<=m;i++){
scanf("%d%d%d",&u,&v,&w);
if(w<dp[u][v]){
dp[u][v]=w;
dp[v][u]=w;
}
}
for(int k=1;k<=n;k++){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]);
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
printf("%d ",dp[i][j]);
}
printf("\n");
}
return 0;
}
这题是不让用scanf吗?