View Code of Problem 14

#include<stdio.h>
int main()
{
    int value[2000][2000]={0},i,j,v,k=0,sum;
    int n,t;
    int w,e,flag;
    int visited[2000][2000]={0};
    scanf("%d%d",&n,&t);
    while(n!=0||t!=0){
        k++;
        sum=0;
        flag=1;
        while(t--){
            scanf("%d%d%d",&i,&j,&v);
            if(v<value[i][j]||value[i][j]==0){
                value[i][j]=v;
                value[j][i]=v;
            }
        }
        scanf("%d%d",&w,&e);
        while(w--){
            scanf("%d%d",&i,&j);
            if(i==e){//遇到了,接下来不计入路程
                flag=0;
            }else{
                if(visited[i][j]==0&&flag==1){
                    sum+=value[i][j];
                }
            }
            visited[i][j]=1;
            visited[j][i]=1;
        }
        printf("Case #%d: %d\n",k,sum);
        scanf("%d%d",&n,&t);
    }
	return 0;
}

Double click to view unformatted code.


Back to problem 14