#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
double map[1100][1100];
void floyd(int n)
{
int i,j,k;
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if(map[i][j]<map[i][k]*map[k][j])
map[i][j]=map[i][k]*map[k][j];
}
}
int main()
{
int n;
int i,j;
while(scanf("%d",&n)!=EOF)
{
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
scanf("%lf",&map[i][j]);
}
}
floyd(n);
int Q;
int a,b;
scanf("%d",&Q);
for(i=1;i<=Q;i++)
{
scanf("%d%d",&a,&b);
if(map[a][b]>0)
printf("%.3lf\n",map[a][b]);
else
printf("What a pity!\n");
}
}
}
hdu 1596 find the safest road
最新推荐文章于 2019-07-24 08:32:29 发布