func_code_string: #include <bits/stdc++.h>   using namespace std;   int n;   vector<int> v[10005];   int color[10005];   int flag[10005];   void dfs(int src, int p, int ctr) {     if (src == p) {       return;     }     flag[src] = ctr;     int i;     for (i = 0; i < v[src].size(); i++) {       if (color[v[src][i]] == color[src]) {         if (v[src][i] != p) dfs(v[src][i], src, ctr);       }     }   }   int main(void) {     scanf( %d , &n);     int i;     int x;     for (i = 2; i <= n; i++) {       scanf( %d , &x);       v[i].push_back(x);       v[x].push_back(i);     }     for (i = 1; i <= n; i++) {       scanf( %d , &x);       color[i] = x;     }     int ctr = 0;     for (i = 1; i <= n; i++) {       if (flag[i] == 0) {         ctr++;         dfs(i, -1, -ctr);       }     }     cout << ctr << endl;     return 0;   }   