#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 1000000000
int n;
ll finans;
vector<vector<pair<int, int>>>adj;
void dfs(int src, int par, int number[])
{
number[src] = 1;
for(auto it:adj[src])
{
if( it.first != par )
{
dfs(it.first, src, number);
number[src] += number[it.first];
// cout<<it.first<<" "<<src<<" "<<number[it.first]<<" "<<(n-number[it.first])<<endl;
ll curr = ( min( number[it.first], n-number[it.first] ) * 2ll * it.second );
finans += curr;
}
}
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
int t,a,b,c;
cin>>t;
ll ans[t];
for(int tt=0; tt<t; tt++)
{
cin>>n;
adj.clear();
adj.reserve(n);
for(int i=0; i<n-1; i++)
{
cin>>a;
cin>>b;
cin>>c;
a--;
b--;
adj[a].push_back(make_pair(b, c));
adj[b].push_back(make_pair(a, c));
}
int number[n];
memset(number,0,sizeof(number));
finans = 0;
dfs(0,-1,number);
ans[tt] = finans;
cout<<"case #"<<(tt+1)<<": "<<ans[tt]<<endl;
}
// for(int tt=1; tt<=t; tt++)
// {
// cout<<"case #"<<tt<<": "<<ans[tt-1]<<endl;
// }
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIG1vZCAxMDAwMDAwMDAwCgppbnQgbjsKbGwgZmluYW5zOwp2ZWN0b3I8dmVjdG9yPHBhaXI8aW50LCBpbnQ+Pj5hZGo7Cgp2b2lkIGRmcyhpbnQgc3JjLCBpbnQgcGFyLCBpbnQgbnVtYmVyW10pCnsKCW51bWJlcltzcmNdID0gMTsKCWZvcihhdXRvIGl0OmFkaltzcmNdKQoJewoJCWlmKCBpdC5maXJzdCAhPSBwYXIgKQoJCXsKCQkJZGZzKGl0LmZpcnN0LCBzcmMsIG51bWJlcik7CgkJCW51bWJlcltzcmNdICs9IG51bWJlcltpdC5maXJzdF07CgkJCS8vIGNvdXQ8PGl0LmZpcnN0PDwiCSI8PHNyYzw8IgkiPDxudW1iZXJbaXQuZmlyc3RdPDwiCSI8PChuLW51bWJlcltpdC5maXJzdF0pPDxlbmRsOwoKCQkJbGwgY3VyciA9ICggIG1pbiggbnVtYmVyW2l0LmZpcnN0XSwgbi1udW1iZXJbaXQuZmlyc3RdICkgKiAybGwgKiBpdC5zZWNvbmQgKTsKCgkJCWZpbmFucyArPSBjdXJyOwoJCX0KCX0KfQoKCmludCBtYWluKCkKewoJI2lmbmRlZiBPTkxJTkVfSlVER0UKCWZyZW9wZW4oImlucHV0LnR4dCIsInIiLHN0ZGluKTsKCWZyZW9wZW4oIm91dHB1dC50eHQiLCJ3IixzdGRvdXQpOwoJI2VuZGlmCgoKCWludCB0LGEsYixjOwoJY2luPj50OwoJbGwgYW5zW3RdOwoKCWZvcihpbnQgdHQ9MDsgdHQ8dDsgdHQrKykKCXsKCQljaW4+Pm47CgkJYWRqLmNsZWFyKCk7CgkJYWRqLnJlc2VydmUobik7CgkJZm9yKGludCBpPTA7IGk8bi0xOyBpKyspCgkJewoJCQljaW4+PmE7CgkJCWNpbj4+YjsKCQkJY2luPj5jOwoJCQkKCQkJYS0tOwoJCQliLS07CgoJCQlhZGpbYV0ucHVzaF9iYWNrKG1ha2VfcGFpcihiLCBjKSk7CgkJCWFkaltiXS5wdXNoX2JhY2sobWFrZV9wYWlyKGEsIGMpKTsKCgkJfQoKCQlpbnQgbnVtYmVyW25dOwoJCW1lbXNldChudW1iZXIsMCxzaXplb2YobnVtYmVyKSk7CgoJCWZpbmFucyA9IDA7CgkJZGZzKDAsLTEsbnVtYmVyKTsKCQlhbnNbdHRdID0gZmluYW5zOwoJCWNvdXQ8PCJjYXNlICMiPDwodHQrMSk8PCI6ICI8PGFuc1t0dF08PGVuZGw7Cgl9CgkvLyBmb3IoaW50IHR0PTE7IHR0PD10OyB0dCsrKQoJLy8gewoJLy8gCWNvdXQ8PCJjYXNlICMiPDx0dDw8IjogIjw8YW5zW3R0LTFdPDxlbmRsOwoJLy8gfQoJcmV0dXJuIDA7Cn0=