#include<iostream> #include<cstring> #include<cmath> #include<algorithm> #include<map> using namespace std; int main(){ int n,t,k=1; while(cin>>n>>t){ if(n==0&&t==0) break; int m[n+1][n+1]; for(int i = 0; i < n+1; i++){ for(int j = 0; j < n+1; j++){ m[i][j] = 999999; } } for(int i = 0; i < t; i++){ int a,b,c; cin>>a>>b>>c; if(m[a][b]>c) m[a][b] = c; } int w,e; cin>>w>>e; int flag[10000]={0},flag2=0,dis=0; for(int i = 0; i < w; i++){ int c,d; cin>>c>>d; if((flag[c]==0||flag[d]==0)&&flag2==0){ dis+=m[c][d]; flag[c]=1; flag[d]=1; } if(d==e) flag2=1; } printf("Case #%d: %d\n",k++,dis); } return 0; } |
Double click to view unformatted code.