Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- const int MAX = 1e6;
- std::vector<int> edges[MAX];
- int n, u, v, quantity[MAX];
- bool visited[MAX];
- int DFS(int u)
- {
- if(!visited[u])
- {
- visited[u] = true;
- if(edges[u].size() == 1 && visited[edges[u][0]])
- quantity[u] = 1;
- else
- for(unsigned int i = 0; i < edges[u].size(); i++)
- quantity[u] += DFS(edges[u][i]);
- return quantity[u];
- }
- }
- int main()
- {
- scanf("%d", &n);
- for(int i = 1; i < n; i++)
- {
- scanf("%d %d", &u, &v);
- edges[u - 1].push_back(v - 1);
- edges[v - 1].push_back(u - 1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement