#include <iostream>
#include <cstring>

using namespace std;
const int N = 1e5 + 10;
int h[N], e[2 * N], ne[2 * N], idx, n;
int d[N];
int maxd[N];
void add(int a, int b) {
    e[idx] = b, ne[idx] = h[a], h[a] = idx++;
}
void dfs(int u, int fa) {
    for (int i = h[u]; i != -1; i = ne[i]) {
        int j = e[i];
        if (j == fa)   continue;
        dfs(j, u);
        maxd[u] = max(maxd[u], maxd[j] + 1);
        d[u] = d[u] + d[j] + 1;
    }
}
int main() {
    cin >> n;
    memset(h, -1, sizeof h);
    for (int i = 0; i < n - 1; ++i) {
        int a, b;
        cin >> a >> b;
        add(a, b);
        add(b, a);
    }
    dfs(1, -1);
//    for(int i=1;i<=n;++i)
//        cout<<d[i]<<"===>"<<maxd[i]<<endl;
    cout << maxd[1] + 2 * (d[1] - maxd[1]) << endl;
    return 0;
}