#include<bits/stdc++.h>
#define Infinity 100000
#define MAX 202
using namespace std;
int koyta_city,koyta_road;
int d[MAX][MAX];
map<string,int>mymap;
void Floyd()
{
for(int k=1;k<=koyta_city;k++)
{
for(int i=1;i<=koyta_city;i++)
{
for(int j=1;j<=koyta_city;j++)
{
d[i][j]=max(d[i][j],min(d[i][k],d[k][j]));
d[j][i]=d[i][j];
}
}
}
}
int main()
{
int load,x,test=0,i,j,incr;
string s,s1,srce,dst;
while(scanf("%d%d",&koyta_city,&koyta_road)&&koyta_city&&koyta_road)
{
incr=0;
for(x=1;x<=koyta_road;x++)
{
cin>>s>>s1>>load;
if(!mymap[s])
{
mymap[s]=++incr;
}
i=mymap[s];
if(!mymap[s1])
{
mymap[s1]=++incr;
}
j=mymap[s1];
d[i][j]=load;
d[j][i]=load;
}
Floyd();
cin>>srce>>dst;
printf("Scenario #%d\n%d tons\n\n",++test,d[mymap[srce]][mymap[dst]]);
mymap.clear();
memset(d,0,sizeof(d));
}
return 0;
}
#define Infinity 100000
#define MAX 202
using namespace std;
int koyta_city,koyta_road;
int d[MAX][MAX];
map<string,int>mymap;
void Floyd()
{
for(int k=1;k<=koyta_city;k++)
{
for(int i=1;i<=koyta_city;i++)
{
for(int j=1;j<=koyta_city;j++)
{
d[i][j]=max(d[i][j],min(d[i][k],d[k][j]));
d[j][i]=d[i][j];
}
}
}
}
int main()
{
int load,x,test=0,i,j,incr;
string s,s1,srce,dst;
while(scanf("%d%d",&koyta_city,&koyta_road)&&koyta_city&&koyta_road)
{
incr=0;
for(x=1;x<=koyta_road;x++)
{
cin>>s>>s1>>load;
if(!mymap[s])
{
mymap[s]=++incr;
}
i=mymap[s];
if(!mymap[s1])
{
mymap[s1]=++incr;
}
j=mymap[s1];
d[i][j]=load;
d[j][i]=load;
}
Floyd();
cin>>srce>>dst;
printf("Scenario #%d\n%d tons\n\n",++test,d[mymap[srce]][mymap[dst]]);
mymap.clear();
memset(d,0,sizeof(d));
}
return 0;
}
0 comments: (+add yours?)
Post a Comment