/*106 miles to Chicago 最短路径 邻接表表示
2008-09-03 09:57:35 Accepted 2797 C++ 00:00.11 880K 天将降大任于我
*/
#include<iostream>
using namespace std;
const int N=100;
int s[N+2][N+2];double cost[N+2];bool check[N+2];
int main()
{
int n,m,x,y,d; int i,j,t,b;double k,Max;
while(scanf("%d",&n)&&n)
{
scanf("%d",&m);
memset(check,0,sizeof(check));
memset(cost,0,sizeof(cost));
memset(s,0,sizeof(s));
for(i=0;i<m;i++)
{
scanf("%d%d%d",&x,&y,&d);
s[x][y]=d;s[y][x]=d;
}
cost[1]=1.0;Max=0.0; //cost[]下标从1开始,是因为走得路是从1开始的
for(i=1;i<=n;i++)
{
k=-1.0;
for(j=1;j<=n;j++)
if(check[j]==0&&cost[j]>k) //找出当前未标记过的最大可能性的点
{ k=cost[j];b=j;}
check[b]=1; //标记该点已经走过
for(t=1;t<=n;t++)
if(check[t]==0&&(cost[b]*s[b][t]/100.0>cost[t])) //找出总可能性到下一个最大的结点
cost[t]=cost[b]*s[b][t]/100.0;
}
printf("%.6lf percent\n",cost[n]*100);
}
return 0;
}
心难泰,世风坏,旧时正气今何在?正义寡,人情薄,闻道虽多,茅塞不开。怪!怪!怪!
空等待,几多载,冲出重围人心快!暴雨打,狂风袭,任他折磨,此志难改。耐!耐!耐!