#include <any> #include <iostream> #include <algorithm> #include <cmath> using namespace std; int fa[110]; int find(int x) { if(fa[x]==x)return x; return fa[x]=find(fa[x]); } typedef struct Link{ int a,b; int len; }L; L link[100010]; bool cmp(L l1,L l2) { return l1.len<l2.len; } int main() { int n; while(cin>>n) { if(n==0)break; for(int i=0;i<=n;i++)fa[i]=i; int cnt=0; for(int i=0;i<n*(n-1)/2;i++) { int a,b,len,flag; cin>>a>>b>>len>>flag; if(a>b)swap(a,b); if(flag) { int f1 = find(a); int f2 = find(b); if(f1!=f2) { fa[f2]=f1; } }else { link[cnt].a=a; link[cnt].b=b; link[cnt].len=len; cnt++; } } sort(link,link+cnt, cmp); int ans=0; for(int i=0;i<cnt;i++) { int f1 = find(link[i].a); int f2 = find(link[i].b); if(f1!=f2) { fa[f2]=f1; ans+=link[i].len; } } cout<<ans<<endl; } } // 64 位输出请用 printf("%lld")