这题真TM传奇,是至今我做的最垃圾最没有意义的题目。
#include<iostream>
using namespace std;int n;
const int inf=99999999;
const int N=105;
int visit[N];
int mat[N][N];
void floyd()
{
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
if(mat[i][j]>mat[i][k]+mat[k][j])
mat[i][j]=mat[i][k]+mat[k][j];
}
int ans=0;
for(int i=2;i<=n;i++)
{
if(mat[1][i]>ans)
ans=mat[1][i];
}
printf("%d\n",ans);
}
int main()
{
//freopen("C:\\Users\\wuyanyisb\\Desktop\\1.txt","r",stdin);
scanf("%d",&n);
for(int i=2;i<=n;i++)
for(int j=1;j<=i-1;j++)
{
char str[10];
scanf("%s",&str);
if(str[0]=='x')
mat[i][j]=inf,mat[j][i]=mat[i][j];
else
mat[i][j]=mat[j][i]=atoi(str);
}
floyd();
return 0;
}