#include<bits/stdc++.h>
using namespace std;
struct node
{
int data,weight;
node *next;
};
struct rnode
{
int count;
node *next;
}*a;
int ans,n;
int dfs(int start,int v[],int c[])
{
node *t;
t=a[start].next;
int curr=t->data;
int cw=t->weight;
while(t!=NULL)
{
cw=t->weight;
curr=t->data;
if(v[curr]==0)
{
v[curr]=1;
c[start]+=dfs(curr,v,c);
}
t=t->next;
}
c[start]+=1;
int x=c[start];
int y=n-x;
ans+=(2*min(x,y)*cw);
return c[start];
}
int main()
{
int t;
cin>>t;
for(int j=1;j<=t;j++)
{
cin>>n;
a=new rnode[n+1];
for(int i=1;i<=n;i++)
{
a[i].next=NULL;
a[i].count=0;
}
for(int i=1;i<n;i++)
{
int x,y,z;
cin>>x>>y>>z;
node *t1,*t2;
t1=new node;
t2=new node;
t1->data=y;
t1->weight=z;
t2->data=x;
t2->weight=z;
t1->next=a[x].next;
a[x].next=t1;
a[y].count+=1;a[x].count+=1;
t2->next=a[y].next;
a[y].next=t2;
}
int s=0,v[n+1]={};
int c[n+1]={};
for(int i=1;i<=n;i++)
{
if(a[i].count==1)
{
s=i;
break;
}
}
v[s]=1;
int co=dfs(s,v,c);
cout<<"Case #"<<j<<": "<<ans<<endl;
n=0;ans=0;
delete []a;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RydWN0IG5vZGUKewogICAgaW50IGRhdGEsd2VpZ2h0OwogICAgbm9kZSAqbmV4dDsKfTsKc3RydWN0IHJub2RlCnsKICAgIGludCBjb3VudDsKICAgIG5vZGUgKm5leHQ7Cn0qYTsKaW50IGFucyxuOwoKaW50IGRmcyhpbnQgc3RhcnQsaW50IHZbXSxpbnQgY1tdKQp7CgogICAgbm9kZSAqdDsKICAgIHQ9YVtzdGFydF0ubmV4dDsKICAgIGludCBjdXJyPXQtPmRhdGE7CiAgICBpbnQgY3c9dC0+d2VpZ2h0OwoKICAgIHdoaWxlKHQhPU5VTEwpCiAgICB7CiAgICAgICAgY3c9dC0+d2VpZ2h0OwogICAgICAgIGN1cnI9dC0+ZGF0YTsKICAgICAgICBpZih2W2N1cnJdPT0wKQogICAgICAgIHsKICAgICAgICAgICAgdltjdXJyXT0xOwogICAgICAgICAgICBjW3N0YXJ0XSs9ZGZzKGN1cnIsdixjKTsKICAgICAgICB9CiAgICAgICAgdD10LT5uZXh0OwogICAgfQogICAgY1tzdGFydF0rPTE7CiAgICBpbnQgeD1jW3N0YXJ0XTsKICAgIGludCB5PW4teDsKCiAgICBhbnMrPSgyKm1pbih4LHkpKmN3KTsKICAgIHJldHVybiBjW3N0YXJ0XTsKCn0KaW50IG1haW4oKQp7CiAgICBpbnQgdDsKICAgIGNpbj4+dDsKICAgIGZvcihpbnQgaj0xO2o8PXQ7aisrKQogICAgewogICAgICAgIGNpbj4+bjsKICAgICAgICBhPW5ldyBybm9kZVtuKzFdOwogICAgICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKQogICAgICAgIHsKICAgICAgICAgICAgYVtpXS5uZXh0PU5VTEw7CiAgICAgICAgICAgIGFbaV0uY291bnQ9MDsKICAgICAgICB9CiAgICAgICAgZm9yKGludCBpPTE7aTxuO2krKykKICAgICAgICB7CiAgICAgICAgICAgIGludCB4LHksejsKICAgICAgICAgICAgY2luPj54Pj55Pj56OwogICAgICAgICAgICBub2RlICp0MSwqdDI7CiAgICAgICAgICAgIHQxPW5ldyBub2RlOwogICAgICAgICAgICB0Mj1uZXcgbm9kZTsKICAgICAgICAgICAgdDEtPmRhdGE9eTsKICAgICAgICAgICAgdDEtPndlaWdodD16OwogICAgICAgICAgICB0Mi0+ZGF0YT14OwogICAgICAgICAgICB0Mi0+d2VpZ2h0PXo7CiAgICAgICAgICAgIHQxLT5uZXh0PWFbeF0ubmV4dDsKICAgICAgICAgICAgYVt4XS5uZXh0PXQxOwogICAgICAgICAgICBhW3ldLmNvdW50Kz0xO2FbeF0uY291bnQrPTE7CiAgICAgICAgICAgIHQyLT5uZXh0PWFbeV0ubmV4dDsKICAgICAgICAgICAgYVt5XS5uZXh0PXQyOwogICAgICAgIH0KCiAgICAgICAgaW50IHM9MCx2W24rMV09e307CiAgICAgICAgaW50IGNbbisxXT17fTsKICAgICAgICBmb3IoaW50IGk9MTtpPD1uO2krKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKGFbaV0uY291bnQ9PTEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHM9aTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB2W3NdPTE7CiAgICAgICAgaW50IGNvPWRmcyhzLHYsYyk7CiAgICAgICAgY291dDw8IkNhc2UgIyI8PGo8PCI6ICI8PGFuczw8ZW5kbDsKICAgICAgICBuPTA7YW5zPTA7CiAgICAgICAgZGVsZXRlIFtdYTsKCiAgICB9CiAgICByZXR1cm4gMDsKfQo=