代码第10到17行
#include<bits/stdc++.h>
using namespace std;
const int N = 207;
int n , m , k;
int dis[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++)
{
dis[i][j] = min(dis[i][j] , dis[i][k] + dis[k][j]);
}
}
int main(){
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
cin >> n >> m >> k;
for(int i = 1 ; i <= n ; i++)
for(int j = 1 ; j <= n ; j++)
{
if(i == j)
{
dis[i][j] = 0;
}
else
{
dis[i][j] = 0x3f3f3f3f;
}
}
int a , b , c;
for(int i = 1 ; i <= m ; i++)
{
cin >> a >> b >> c;
dis[a][b] = min(dis[a][b] , c);
}
Floyd();
for(int i = 1 ; i <= k ; i++)
{
cin >> a >> b;
if(dis[a][b] > 0x3f3f3f3f / 2)
{
cout << "impossible" << endl;
}
else
{
cout << dis[a][b] << endl;
}
}
return 0;
}