def cmb(n, r, mod):#コンビネーションの高速計算  if ( r<0 or r>n ): return 0 r = min(r, n-r) return (g1[n] * g2[r] % mod) * g2[n-r] % mod mod = 998244353#出力の制限 N = 2*10**3 g1 = [1]*(N+1) # 元テーブル g2 = [1]*(N+1) #逆元テーブル inverse = [1]*(N+1) #逆元テーブル計算用テーブル for i in range( 2, N + 1 ): g1[i]=( ( g1[i-1] * i ) % mod ) inverse[i]=( ( -inverse[mod % i] * (mod//i) ) % mod ) g2[i]=( (g2[i-1] * inverse[i]) % mod ) inverse[0]=0 import sys,random,bisect from collections import deque,defaultdict from heapq import heapify,heappop,heappush from itertools import permutations from math import log,gcd input = lambda :sys.stdin.readline().rstrip() mi = lambda :map(int,input().split()) li = lambda :list(mi()) N = int(input()) edge = [[] for i in range(N)] for _ in range(N-1): a,b = mi() edge[a-1].append(b-1) edge[b-1].append(a-1) depth = [0 for i in range(N)] parent = [-1 for i in range(N)] deq = deque([0]) res = [] while deq: v = deq.popleft() res.append(v) for nv in edge[v]: if nv!=parent[v]: parent[nv] = v depth[nv] = depth[v] + 1 deq.append(nv) res = res[::-1] size = [1 for i in range(N)] d_sum = [1 for i in range(N)] for v in res: for nv in edge[v]: if nv==parent[v]: continue size[v] += size[nv] d_sum[v] += size[nv] + d_sum[nv] ans = 0 for v in res[::-1]: ans += d_sum[v] for nv in edge[v]: if nv==parent[v]: continue d_sum[nv] = d_sum[v] + N - 2 * size[nv] print(ans)