fork(1) download
  1. #include <fstream>
  2. #include <cmath>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. ifstream fin("input.txt");
  8. ofstream fout("output.txt");
  9.  
  10. int N,temp,S;
  11. vector <int> grafo[100001];
  12. int monete[100001];
  13.  
  14. int dfs(int V) {
  15. int M=monete[V]-1;
  16. for(unsigned int i=0;i<grafo[V].size();i++) M+=dfs(grafo[V][i]);
  17. S+=abs(M);
  18. return M;
  19. }
  20.  
  21. int main() {
  22. fin>>N;
  23. for(int i=1;i<=N;i++) fin>>monete[i];
  24. for(int i=2;i<=N;i++) {
  25. fin>>temp;
  26. grafo[temp].push_back(i);
  27. }
  28.  
  29. dfs(1);
  30. fout<<S;
  31. }
Success #stdin #stdout 0s 5016KB
stdin
Standard input is empty
stdout
Standard output is empty