//u64_Normal-2_rep3暫定 #define _GLIBCXX_DEBUG #define ll long long #define u64 uint64_t #define rep(a, b, c) for(int i = a; i < b; i += c) #define rep2(a, b, c) for(int j = a; j < b; j += c) #define rep3(a, b, c) for(int k = a; k < b; k += c) #include using namespace std; using Graph = vector>; void p(auto a){ cout << a; } void ps(auto a){ cout << a << " "; } void ps(){ cout << " "; } void pl(auto a){ cout << a << endl; } void pl(){ cout << endl; } void fix15(){ cout << fixed << setprecision(15); } void YES(){ pl("YES"); } void NO(){ pl("NO"); } void Yes(){ pl("Yes"); } void No(){ pl("No"); } void yes(){ pl("yes"); } void no(){ pl("no"); } Graph G(2e5+10); ll ans = 0; void bfs(int now, int dep, vector B){ if(dep != 0) ans++; if(dep == 3) return; B[now] = true; for(auto p: G[now]){ if(!B[p]) bfs(p, dep+1, B); } } //Normal-2 int main(){ int N; cin >> N; rep(0, N-1, 1){ int A, B; cin >> A >> B; G[A].push_back(B); G[B].push_back(A); } rep(1, N+1, 1){ vector B(3e5, false); bfs(i, 0, B); } pl(ans/2); }