Advertisement
Korotkodul

ДО Е

Apr 1st, 2022
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <vector>
  4. #include <queue>
  5. #include <algorithm>
  6. #include <string>
  7. #include <stack>
  8. #include <set>
  9. #include <map>
  10. #define pii pair <int,int>
  11. #define vec vector
  12. using namespace std;
  13. using ll = long long;
  14. using ld = long double;
  15. using db = double;
  16. void cv(vector <int> &v){
  17. for (auto x: v) cout<<x<<' ';
  18. cout<<"\n";
  19. }
  20.  
  21. void cvl(vector <ll> &v){
  22. for (auto x: v) cout<<x<<' ';
  23. cout<<"\n";
  24. }
  25.  
  26.  
  27. void cvv(vector <vector <int> > &v){
  28. for (auto x: v) cv(x);
  29. cout<<"\n";
  30. }
  31.  
  32. void cvb(vector <bool> v){
  33. for (bool x: v) cout<<x<<' ';
  34. cout<<"\n";
  35. }
  36.  
  37. void cvs(vector <string> v){
  38. for (auto a: v){
  39. cout<<a<<"\n";
  40. }
  41. }
  42.  
  43. int N;
  44.  
  45. struct tree{
  46. vector <int> Z;
  47. void bld(){
  48. cin>>N;
  49. int rawN=N;
  50. N = pow(2, ceil(log2(N)) ) ;
  51. //cout<<"N= "<<N<<"\n";
  52. Z.assign(2*N-1,0);
  53. for (int i = N-1; i < N-1 + rawN;++i){
  54. int d; cin>>d;
  55. if (d == 0) Z[i]=1;
  56. }
  57. for (int i = N-2; i >=0;--i) Z[i] = Z[2*i+1] + Z[2*i+2];
  58. //cv(Z);
  59. }
  60. void sh(){
  61. int k = log2(N);
  62. int id=-1;
  63. for (int i=0;i<=k;++i){
  64. for (int j=0;j<pow(2,i);++j){
  65. id++; cout<<Z[id]<<" ";
  66. }cout<<"\n";
  67. }
  68. }
  69. };
  70.  
  71.  
  72. int main()
  73. {
  74. /*ios::sync_with_stdio(0);
  75. cin.tie(0);
  76. cout.tie(0);*/
  77. tree T;
  78. T.bld();
  79. T.sh();
  80. }
  81.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement