提交时间:2023-02-03 17:10:13

运行 ID: 68261

#include<bits/stdc++.h> using namespace std; const int N=210,INF=1e9; int n,m,l; int ans[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++){ ans[i][j]=min(ans[i][j],ans[i][k]+ans[k][j]); } } } } int main(){ cin>>n>>m; l=1; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(i==j) ans[i][j]=0; else ans[i][j]=INF; } } for(int i=1;i<=m;i++){ int a,b,c; cin>>a>>b>>c; ans[a][b]=min(ans[a][b],c); } floyd(); for(int i=1;i<=l;i++){ int a,b; cin>>a>>b; if(ans[a][b]>INF/2) cout<<"impossible"<<endl; else cout<<ans[a][b]<<endl; } return 0; }