fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. vector<vector<int>> vec;
  4. int ile[1000007];
  5. int wart[1000007];
  6. int ile_ma(int x)
  7. {
  8. int c=vec[x].size();
  9. if(ile[x]>0)
  10. {
  11. return ile[x];
  12. }
  13. if(c==0)
  14. {
  15. ile[x]=wart[x];
  16. return 1;
  17. }
  18. int wyn=wart[x];
  19. for(auto a:vec[x])
  20. {
  21. wyn+=ile_ma(a);
  22. }
  23. ile[x]=wyn;
  24. return wyn;
  25. }
  26. int main()
  27. {
  28. ios_base::sync_with_stdio(0);
  29. cin.tie(0);
  30. int n;cin>>n;
  31. if(n==1)
  32. {
  33. cout<<0;
  34. return 0;
  35. }
  36. for(int i=0;i<n;i++)
  37. {
  38. vector<int> a;vec.push_back(a);
  39. }
  40. cout<<"asa"<<endl;
  41. for(int i=2;i<=n;i++)
  42. {
  43. int a,b;cin>>a>>b;
  44. vec[a].push_back(i);
  45. wart[i]=b;
  46. }
  47. ile_ma(1);
  48. cout<<"dasdadfADD"<<endl;
  49. for(int i=1;i<=n;i++)
  50. {
  51. cout<<ile[i]<<endl;
  52. }
  53. }
  54.  
Success #stdin #stdout 0.01s 5324KB
stdin
6
4 4
1 10
1 1
1 3
2 1
stdout
asa
dasdadfADD
8
5
10
6
3
1