#include <stdio.h> #include <string.h> #include <stdlib.h> #include <limits.h> struct node{ int a, b, value; }f[2005]; int main() { int n, t; int i = 1; while (scanf("%d%d", &n, &t) != EOF) { if (n == 0 && t == 0) { break; } for(int i = 0; i < n; i++) f[i].value = INT_MAX; printf("Case #%d: ", i++); int index = 0; while (t--) { int a1, b1, value; scanf("%d%d%d", &a1, &b1, &value); int i; for(i = 0; i < index; i++) { if ((a1 == f[i].a && b1 == f[i].b) || (a1 == f[i].b && b1 == f[i].a)) { if (f[i].value > value) { f[i].value = value; break; } } } if (i == index) { f[index].a = a1; f[index].b = b1; f[index++].value = value; } } int w, e; scanf("%d%d", &w, &e); int isFinish = 0, count = 0; while(w--) { int a1, b1; scanf("%d%d", &a1, &b1); if (isFinish) { continue; } if (b1 == e) { isFinish = 1; } for (int i = 0; i < index; i++) { if ((a1 == f[i].a && b1 == f[i].b) || (a1 == f[i].b && b1 == f[i].a)) { count += f[i].value; f[i].value = 0; break; } } } printf("%d\n", count); } } |
Double click to view unformatted code.