#include <iostream> #include <algorithm> #include <cmath> using namespace std; int fa[30]; typedef struct Link{ char a,b; int len; }L; bool cmp(L l1,L l2) { return l1.len<l2.len; } int find(int x) { if(fa[x]==x)return x; return fa[x] = find(fa[x]); } void init(int n) { for(int i=0;i<n;i++) { fa[i]=i; } } int main() { int n; while(cin>>n) { if(n==0)break; init(n); L li[100]; int len=0 ; for(int i = 0;i<n-1;i++) { int num; char c; cin>>c>>num; if(num>0) { int num1; char c1; for(int j=0;j<num;j++) { cin>>c1>>num1; li[len].a = c; li[len].b = c1; li[len].len =num1; len++; } } } sort(li,li+len,cmp); int cnt=0,ans=0; for(int i=0;i<len;i++) { int f1 = find(li[i].a-'A'); int f2 = find(li[i].b-'A'); if(f1!=f2) { fa[f2] = f1; cnt++; ans+=li[i].len; } if(cnt==n-1)break; } cout<<ans<<endl; } } // 64 位输出请用 printf("%lld")