#include #include #include using namespace std; vector G[1000000]; bool used[1000000]; int answer = 0; void dfs(int v, int p = -1) { if (used[v]) return; used[v] = true; //cout << v << " " << G[v].size() << " " << p << endl; if (p != -1) { if (G[v].size() > 2) answer += (int)G[v].size()-2; } for (int i = 0; i < (int)G[v].size(); ++i) { dfs(G[v][i], v); } } int main() { int n, a, b; scanf("%d", &n); for (int i = 1; i < n; ++i) { scanf("%d%d", &a, &b); G[a].push_back(b); G[b].push_back(a); } for (int i = 1; i <= n; ++i) { if (G[i].size() == 1) { dfs(i); break; } } printf("%d\n", answer); }