提交时间:2023-02-03 18:32:11
运行 ID: 68286
#include<bits/stdc++.h> #define inf 1e9 #define maxn 200 using namespace std; int dis[maxn][maxn]; int n,m,x,y,k; void si(){ for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(dis[i][k]!=inf && dis[k][j]!=inf && dis[i][k]+dis[k][j]<dis[i][j])dis[i][j]=dis[i][k]+dis[k][j]; } int main() { while(cin>>n>>m){ fill(dis[0],dis[0]+maxn*maxn,inf); for(int i=0;i<m;i++){ cin>>x>>y>>k; if(dis[x][y]>k) { dis[x][y]=k; dis[y][x]=k; } } cin>>x>>y; si(); if(dis[x][y]==inf)cout<<"NO\n"; else cout<<dis[x][y]<<endl; } return 0; }