floyed算法 求最短路 帮忙看一下 哪里有问题
#include<iostream>
#include<cstring>
using namespace std;
char a,b;
int c;
int vis[1005][1005];
int bj[1005];
int ans=0x3f3f3f3f;
char cow;
int minn=0x3f3f3f3f,maxx;
int n;
void judge(char a)
{
if(a>='A'&&a<'Z')
{
bj[int(a)]=1;
}
}
int main()
{
cin>>n;
memset(vis,0x3f,sizeof(vis));
for(int i=1;i<=n;++i)
{
cin>>a>>b>>c;
vis[int(a)][int(b)]=c;
vis[int(b)][int(a)]=c;
minn=min(int(a),min(int(b),minn));
maxx=max(int(a),max(int(a),maxx));
judge(a);
}
for(int k=minn;k<=maxx;++k)
{
for(int i=minn;i<=maxx;++i)
{
for(int j=minn;j<=maxx;++j)
{
if(i!=k&&j!=k&&i!=j)
vis[i][j]=min(vis[i][k]+vis[k][j],vis[i][j]);
}
}
}
for(int i=minn;i<=maxx;++i)
{
if(bj[i]==1&&vis[i][int('Z')]<ans)
ans=vis[i][int('Z')],cow=char(i);
}
cout<<cow<<" "<<ans<<endl;
return 0;
}