karlangadas

739B - Alyona and a tree - tl

Jan 2nd, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. int main() {
  6. int n,vert,c,d;
  7. vector<int>v;
  8. vector<int>p;
  9. vector<int>distap;
  10. vector<int>control;
  11.  
  12. cin>>n;
  13. for (int i=0;i<n;i++){
  14. cin>>vert;
  15. v.push_back(vert);
  16. p.push_back(-1);
  17. distap.push_back(0);
  18. control.push_back(0);
  19.  
  20. }
  21. for (int i=1;i<n;i++){
  22. cin>>c>>d;
  23. p[i]=c-1;
  24. distap[i]=d;
  25. }
  26. int aux,j,vj;
  27. for (int i=1;i<n;i++){
  28. j=i;
  29. vj=v[j];
  30. aux=0;
  31. //cout<<"pop"<<endl;
  32. while ((distap[j]+aux)<=vj){
  33. //cout<<"j: "<<j<<" distap[j]: "<<distap[j]<<" aux: "<<aux<<" v[j]: "<<v[j]<<endl;
  34. aux=aux+distap[j];
  35. control[p[j]]++;
  36. //cout<<"control de "<<p[j]<<" aumentó"<<endl;
  37.  
  38. j=p[j];
  39. //cout<<"evaluando "<<j<<endl;
  40.  
  41. if (j==0)
  42. break;
  43. }
  44. }
  45.  
  46. for (int i=0;i<n;i++){
  47. cout<<control[i];
  48. if (i<(n-1))
  49. cout<<' ';
  50. else
  51. cout<<endl;
  52. }
  53. return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment