#include<stdio.h> #include<cstdlib> #include<cmath> #include<iostream> #include<algorithm> using namespace std; typedef long long ll; struct node{ int a,b,value; }a[2001]; struct node1{ int c,d; }b[2001]; int main(){ int n,t; int count=0; int res=0; while(scanf("%d%d", &n, &t)==2&&(n||t)){ for(int i=0;i<t;i++){ scanf("%d%d%d", &a[i].a,&a[i].b,&a[i].value); } for(int i=0;i<t;i++){ for(int j=0;j<t;j++){ if((a[i].a==a[j].a)&&(a[i].b=a[j].b)&&(a[i].value)>a[j].value){ a[i].value=a[j].value; a[j].a=a[j].b=a[j].value=0; } } } int w,e; scanf("%d%d",&w,&e); for(int j=0;j<w;j++){ scanf("%d%d", &b[j].c,&b[j].d); } for(int i=0;i<w;i++){ for(int j=i+1;j<w;j++){ if((b[i].c==b[j].d)&&(b[i].d==b[j].c)){ b[j].c=b[j].d=0; } if((b[i].c==b[j].c)&&(b[i].d==b[j].d)) b[j].c=b[j].d=0; } } count++; for(int i=0;i<t;i++){ for(int j=0;j<w;j++){ if((a[i].a==b[j].c)&&(a[i].b==b[j].d)) res+=a[i].value; if(b[j].d==e) break; } } printf("Case #%d: %d", count ,res); res=0; } return 0; } |
Double click to view unformatted code.