//mosyasu #include using namespace std; int main(){ int n; cin >> n; vector ikeru(n, vector(0)); for (int i=0; i> u >> v; u--; v--; ikeru[u].push_back(v); ikeru[v].push_back(u); } long long ans = 0; vector dp(n, vector(4)); vector mx(n, 0); auto dfs = [&](auto self, int i, int p) -> void { dp[i][0] = 1; mx[i] = 1; for (int j: ikeru[i]){ if (j == p) continue; self(self, j, i); for (int x=0; x 3) break; ans += dp[i][x] * dp[j][y]; } } for (int x=0; x