#include<stdio.h> #include<string.h> #include<stdlib.h> int n,m,map[124][124]; const int inf=0x7fffffff; void floyed() { for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) for(int k=1;k<=n;k++) if(map[i][j]!=inf&&map[i][k]!=inf) if(map[i][j]+map[i][k]<map[j][k]) map[j][k]=map[i][j]+map[i][k]; } int main() { int a,b,v; while(scanf("%d%d",&n,&m)!=EOF) { for(int i=1;i<=n;i++)//初始化 { for(int j=1;j<=n;j++) { map[i][j]=inf; } } for(int i=1;i<=m;i++) { scanf("%d%d%d",&a,&b,&v); if(val<map[a][b]&&a!=b) { map[a][b]=map[b][a]=v; } } floyed(); printf("%d\n",map[1][n]); } system("pause"); return 0; }