Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.57 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. const int N = 6e5;
  5. vector<int> g[N];
  6. bool used[N];
  7.  
  8. void dfs(int u) {
  9.     if (used[u]) return;
  10.     used[u] = 1;
  11.     for (auto to : g[u]) {
  12.         dfs(to);
  13.     }
  14. }
  15.  
  16. int main() {
  17.     ios_base::sync_with_stdio(0);
  18.     cin.tie(0);
  19.     int n, k;
  20.     cin >> n >> k;
  21.     for (int i = 1; i < n; i++) {
  22.         int p;
  23.         cin >> p;
  24.         --p;
  25.         g[i].push_back(p);
  26.     }
  27.     for (int i = 0; i < k; i++) {
  28.         int x;
  29.         cin >> x;
  30.         --x;
  31.         dfs(x);
  32.     }
  33.     int ans = 0;
  34.     for (int i = 0; i < n; i++) {
  35.         ans += used[i];
  36.     }
  37.     cout << ans;
  38.     return 0;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement