#include<stdio.h> int main(){ int n, t, a, b, value, w, e, c, d, length, flag, i = 0, j = 0, k, foundFlag, map[2000][4] = {{0}}; while(scanf("%d%d", &n, &t) && (n || t) && ++i){ while(t--){ scanf("%d%d%d", &a, &b, &value); foundFlag = 0; for(k = 0; k < j; k++){ if(map[k][0] == a && map[k][1] == b){ (map[k][2] > value) && (map[k][2] = value); foundFlag = 1; break; } } if(!foundFlag){ map[j][0] = a; map[j][1] = b; map[j++][2] = value; } } scanf("%d%d", &w, &e); length = 0; flag = 0; while(w--){ scanf("%d%d", &c, &d); if(flag) continue; for(k = 0; k < j; k++){ if(((map[k][0] == c && map[k][1] == d)|| (map[k][0] == d && map[k][1] == c))&& !map[k][3]){ map[k][3] = 1; length += map[k][2]; break; } } if(d == e) flag = 1; } printf("Case #%d: %d\n", i, length); for(k = 0; k < j; k++){ map[k][0] = 0; map[k][1] = 0; map[k][3] = 0; } j = 0; } return 0; } |
Double click to view unformatted code.