#include<bits/stdc++.h> using namespace std; struct Node{ int to,w,next;//to儿子,w权值,next哥哥 }edge[1000]; int n,m,t,u,w,v,s,e,ans=INT_MAX,f=0,head[1005],vis[1000];//n节点,m行,u父亲,v孩子,t序号 \ void add(int u,int w,int v){ t++; edge[t].to=v; edge[t].w=w; edge[t].next=head[u]; head[u]=t; } void dfs(int x,int w){ if(x==e){ ans=min(ans,w); f=1; return; }else{ for(int i=head[x].next,i!=0,i=edge[i].next){ if(vis[edge[i].to]!=1){ vis[edge[i].to]=1; dfs(vis[edge[i].to],w+edge[i].w); vis[edge[i].to]=0; } } } } int main(){ int n,m; cin>>n>>m; for(int i=1;i<=m;i++){ cin>>u>>w>>v; add(u,w,v); add(v,w,u); } cin>>s>>e; dfs(s,0); if(f==0) cout<<ans; else cout<<'No path'; return 0; } /************************************************************** Problem: 2044 User: admin Language: C++ Result: Compile Error ****************************************************************/