#include <bits/stdc++.h>
using namespace std;
vector<int> E[201000];
int n, D[201000], Dia[201000];
long long Res;
void DFS(int a, int pp) {
  int i;
  for (i = 0; i < E[a].size(); i++) {
    if (E[a][i] != pp) {
      DFS(E[a][i], a);
      D[a] = max(D[a], D[E[a][i]] + 1);
    }
  }
}
void DFS2(int a, int pp, int pL) {
  int i, x, Mx = -1e9, Mx2 = -1e9;
  if (pp) {
    Mx = pL;
  }
  for (i = 0; i < E[a].size(); i++) {
    x = E[a][i];
    if (x == pp) continue;
    if (Mx < D[x]) {
      Mx2 = Mx;
      Mx = D[x];
    } else if (Mx2 < D[x])
      Mx2 = D[x];
  }
  Dia[a] = Mx + 1;
  for (i = 0; i < E[a].size(); i++) {
    x = E[a][i];
    if (x == pp) continue;
    if (D[x] == Mx)
      DFS2(x, a, max(-1, Mx2) + 1);
    else
      DFS2(x, a, max(-1, Mx) + 1);
  }
  if (!pp)
    Res += D[a] + 1;
  else {
    Res += min(pL + 1, D[a] + 2);
  }
}
int main() {
  int i, a, b;
  scanf("%d", &n);
  for (i = 1; i < n; i++) {
    scanf("%d%d", &a, &b);
    E[a].push_back(b);
    E[b].push_back(a);
  }
  DFS(1, 0);
  DFS2(1, 0, 0);
  printf("%lld\n", Res);
}
