#include #include using namespace std; vector g[100000]; int n; int dp0[100000]; int dp1[100000]; void dfs(int u, int p) { for (int v : g[u]) if (v != p) { dfs(v, u); dp0[u] += max(dp1[v], dp0[v]); dp1[u] += max(dp1[v] - 1, dp0[v]); } dp1[u]++; } int main() { cin >> n; for (int i = 0; i < n - 1; i++) { int u, v; cin >> u >> v; u--; v--; g[u].push_back(v); g[v].push_back(u); } dfs(0, -1); cout << max(dp0[0], dp1[0]) << endl; }