#include using namespace std; int n; long long res = 0; vector> g; vector cnt; long long solve(); long long dfs(int now = 0, int par = -1); int main() { cin >> n; g.resize(n); for (int i = 1; i < n; ++i) { int x, y; cin >> x >> y; g[--x].push_back(--y); g[y].push_back(x); } cout << solve() << endl; return 0; } long long solve() { cnt.assign(n, 1); dfs(); return res + (long long)n * n; } long long dfs(int now, int par) { for (auto to : g[now]) if (to != par) cnt[now] += dfs(to, now); res += cnt[now] * (n - cnt[now]); for (auto to : g[now]) if (to != par) res += cnt[to] * (n - cnt[to]); return cnt[now]; }