#include #include #include

using namespace std;

typedef long long dint; #define _l (long long int)

struct Edge { int t; Edge* ne; };

const int maxn = 100003;

dint f[maxn], g[maxn], ans; Edge epool[maxn * 2], *ebuf(epool), *head[maxn]; int n;

inline void addEdge(int u, int v) { ebuf->t = v; ebuf->ne = head[u]; head[u] = ebuf++; }

void DFS(int u, int fr) { f[u] = 1; g[u] = 0; for (Edge* e = head[u]; e; e = e->ne) { if (e->t != fr) { DFS(e->t, u); ans += f[u] * g[e->t] + f[e->t] * g[u]; f[u] += f[e->t]; g[u] += g[e->t] + f[e->t]; } } // cout « u « " " « f[u] « " " « g[u] « " " « ans « “\n”; }

int main() { ios::sync_with_stdio(0); cin » n; for (int i = 1; i < n; ++i) { int u, v; cin » u » v; addEdge(u, v); addEdge(v, u); } DFS(0, -1); ans = _l n * (n - 1) * (n - 2) / 6 - ans; cout « ans « endl; }