#include<stdio.h> struct location{ int a,b,value; }loc[2000]; int main() { int n,t,a,b,value,w,e,k=1; while(scanf("%d %d",&n,&t)!=EOF&&n!=0) { for(int i=0;i<t;i++) { scanf("%d %d %d",&a,&b,&value); loc[i].a=a;loc[i].b=b;loc[i].value=value; } for(int i=0;i<t;i++) { for(int j=0;j<t;j++) { if(loc[i].a==loc[j].a&&loc[i].b==loc[j].b) { if(loc[i].value<loc[j].value) { loc[j].value=loc[i].value; } else { loc[i].value=loc[j].value; } } } } int p[2000]={0},q[2000]={0}; scanf("%d %d",&w,&e); for(int i=0;i<w;i++) { scanf("%d %d",&p[i],&q[i]); } int dist[100][100]={{0}}; int distance=0; for(int i=0;i<w;i++) { for(int j=0;j<t;j++) { if(p[i]==loc[j].a&&q[i]==loc[j].b&&dist[loc[j].a][loc[j].b]==0) { distance+=loc[j].value; dist[loc[j].a][loc[j].b]=1;dist[loc[j].b][loc[j].a]=1; } if(p[i]==loc[j].b&&q[i]==loc[j].a&&dist[loc[j].b][loc[j].a]==0) { distance+=loc[j].value; dist[loc[j].b][loc[j].a]=1;dist[loc[j].a][loc[j].b]=1; } } } printf("Case #%d: %d",k,distance); k++; } return 0; } |
Double click to view unformatted code.