#2755: 請高手幫幫忙


leopan0922 (zz)


測它的測資是對的

#include<iostream>         
using namespace std;
int main()           
{
    int n,m;
    while(scanf("%d%d",&n,&m)==2&&n&&m)
    {
        int line[n+1][n+1],x,y,weight;
        for(int i=1;i<=n;i++)
        for(int j=i+1;j<=n;j++)
        line[i][j]=line[j][i]=0;
        for(int i=0;i<m;i++)
        {
            scanf("%d%d%d",&x,&y,&weight);
            if(weight>line[x][y])
            line[x][y]=line[y][x]=weight;
        }
        scanf("%d%d",&x,&y);
        for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
        for(int k=1;k<=n;k++)
        {
            if(line[i][j]!=0&&line[j][k]!=0)
            {
                if(line[i][j]>line[j][k])
                weight=line[j][k];
                else
                weight=line[i][j];
                if(weight>line[i][k])
                line[i][k]=weight;
            }   
        }
        printf("%d\n",line[x][y]);
    }
}                   

#2765: Re:請高手幫幫忙


leopan0922 (zz)


測它的測資是對的

#include         
using namespace std;
int main()           
{
    int n,m;
    while(scanf("%d%d",&n,&m)==2&&n&&m)
    {
        int line[n+1][n+1],x,y,weight;
        for(int i=1;i<=n;i++)
        for(int j=i+1;j<=n;j++)
        line[i][j]=line[j][i]=0;
        for(int i=0;i        {
            scanf("%d%d%d",&x,&y,&weight);
            if(weight>line[x][y])
            line[x][y]=line[y][x]=weight;
        }
        scanf("%d%d",&x,&y);
        for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
        for(int k=1;k<=n;k++)
        {
            if(line[i][j]!=0&&line[j][k]!=0)
            {
                if(line[i][j]>line[j][k])
                weight=line[j][k];
                else
                weight=line[i][j];
                if(weight>line[i][k])
                line[i][k]=weight;
            }   
        }
        printf("%d\n",line[x][y]);
    }
}                   

以解決