544 - Heavy Cargo

#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;
}

0 comments: (+add yours?)