#include<stdio.h>
#include<string.h>
int x(int a,int b)
{
if(a<b)
return a;
else
return b;
}
int d(int a,int b)
{
if(a<b)
return b;
else
return a;
}
int main()
{
int i,j,k,l,m,n,r,min;
int s,e,p;
int map[105][105];
for(l=1;;l++)
{
scanf("%d %d",&n,&r);
if(!n&&!r)
break;
memset(map,0,sizeof(map));
for(i=0;i<r;i++)
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
map[a][b]=c;
map[b][a]=c;
}
scanf("%d %d %d",&s,&e,&p);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
for(k=1;k<=n;k++)
{
map[j][k]=d(x(map[j][i],map[i][k]),map[j][k]);
map[k][j]=map[j][k];
}
}
}
//
if(p%(map[e][s]-1)!=0)
m=p/(map[e][s]-1)+1;
else
m=p/(map[e][s]-1);
printf("Scenario #%d\n",l);
printf("Minimum Number of Trips = %d\n",m);
printf("\n");
}
return 0;
}
uva 10099
最新推荐文章于 2021-03-09 03:53:26 发布
1609

被折叠的 条评论
为什么被折叠?



