#include <bits/stdc++.h>
using namespace std;
long long mod = 1e9 + 7;
long long n, ans, dp[200005][3], sz[200005][3];
vector<int> gr[200005];
void dfs(int x, int p) {
  sz[x][0]++;
  for (int i = 0; i < gr[x].size(); i++) {
    int u = gr[x][i];
    if (u == p) continue;
    dfs(u, x);
    dp[x][0] += dp[u][1] + sz[u][1] + 1;
    dp[x][1] += dp[u][0] + sz[u][0];
    sz[x][0] += sz[u][0];
    sz[x][1] += sz[u][1];
  }
}
void root(int x, int p) {
  ans += dp[x][0];
  for (int i = 0; i < gr[x].size(); i++) {
    int u = gr[x][i];
    if (u == p) continue;
    dp[x][0] -= dp[u][1] + sz[u][1] + 1;
    dp[x][1] -= dp[u][0] + sz[u][0];
    sz[x][0] -= sz[u][0];
    sz[x][1] -= sz[u][1];
    sz[u][1] += sz[x][1];
    sz[u][0] += sz[x][0];
    dp[u][1] += dp[x][0] + sz[x][0];
    dp[u][0] += dp[x][1] + sz[x][1] + 1;
    root(u, x);
    dp[u][0] -= dp[x][1] + sz[x][1] + 1;
    dp[u][1] -= dp[x][0] + sz[x][0];
    sz[u][0] -= sz[x][0];
    sz[u][1] -= sz[x][1];
    sz[x][1] += sz[u][1];
    sz[x][0] += sz[u][0];
    dp[x][1] += dp[u][0] + sz[u][0];
    dp[x][0] += dp[u][1] + sz[u][1] + 1;
  }
}
int main() {
  cin >> n;
  for (int i = 0; i < n - 1; i++) {
    int x, y;
    cin >> x >> y;
    gr[x].push_back(y);
    gr[y].push_back(x);
  }
  dfs(1, 0);
  root(1, 0);
  cout << ans / 2;
}
