#include <bits/stdc++.h>
using namespace std;
#define int long long
void dfs(int st, vector<int>g[], int sz[], int dp[], int p){
dp[st]=0;
sz[st]=1;
vector<int>sizes;
for(int i : g[st]){
if(i==p)
continue;
dfs(i,g,sz,dp,st);
sz[st]+=sz[i];
dp[st]+=dp[i];
sizes.push_back(sz[i]);
}
sort(sizes.begin(),sizes.end());
reverse(sizes.begin(),sizes.end());
int pref=1;
for(int i = 0;i<sizes.size();i++){
//going from st
dp[st]+=sz[st]-pref;
pref+=sizes[i];
//for every edge in i sz[st]-pref gets added
dp[st]+=(sz[st]-pref)*2*(sizes[i]-1);
//returning to st
dp[st]+=sz[st]-pref;
}
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
vector<int>g[n];
for(int i = 0;i<n-1;i++){
int a,b;
cin >> a >> b;
a--;b--;
g[a].push_back(b);
g[b].push_back(a);
}
int ans = 1e9;
int sz[n];
int dp[n];
for(int i = 0;i<n;i++){
dfs(i,g,sz,dp,-1);
ans=min(ans,dp[i]);
}
cout << ans;
return 0;
}