#include <bits/stdc++.h>
using namespace std;
long long N, sz[80010], s2[90010];
vector<int> g[80010];
long long res = 0;
void dfs(int nod, int f) {
  sz[nod] = 1;
  for (int nxt : g[nod]) {
    if (nxt == f) continue;
    dfs(nxt, nod);
    sz[nod] += sz[nxt];
    s2[nod] += sz[nxt] * sz[nxt];
  }
  s2[nod] += (N - sz[nod]) * (N - sz[nod]);
  for (int nxt : g[nod]) {
    long long s;
    if (nxt == f)
      s = N - sz[nod];
    else
      s = sz[nxt];
    long long tot =
        N - s - 1 + ((N - s - 1) * (N - s - 1) - s2[nod] + s * s) / 2;
    if (s % 2 == 0)
      res += s / 2 * (s - 1) * tot;
    else
      res += (s - 1) / 2 * s * tot;
  }
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cin >> N;
  int i, x, y;
  for (i = 1; i < N; i++) {
    cin >> x >> y;
    g[x].push_back(y);
    g[y].push_back(x);
  }
  dfs(1, 0);
  cout << res << "\n";
  return 0;
}
