麻烦各位大佬帮我看看哪里错了,谢谢
#include<bits/stdc++.h>
using namespace std;
int n,m,ans=1e9+7;
int a[110][110],dp[110][110];
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(i!=j) a[i][j]=dp[i][j]=1e9+7;
for(int i=1;i<=m;i++)
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
a[x][y]=a[y][x]=dp[x][y]=dp[y][x]=z;
}
for(int k=1;k<=n;k++)
{
for(int i=1;i<k;i++)
for(int j=i+1;j<k;j++)
ans=min(ans,dp[i][j]+a[i][k]+a[k][j]);
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]),dp[j][i]=dp[i][j];
}
if(ans==1e9+7) cout<<"No solution."<<endl;
else cout<<ans<<endl;
return 0;
}