Advertisement
Korotkodul

ЗОШ ДО

Jan 7th, 2022
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.27 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. using namespace std;
  12. using ll = long long;
  13. using ld = long double;
  14. void cv(vector <int> &v){
  15.     for (auto x: v) cout<<x<<' ';
  16.     cout<<"\n";
  17. }
  18.  
  19. void cvv(vector <vector <int> > &v){
  20.     for (auto x: v) cv(x);
  21.     cout<<"\n";
  22. }
  23. int n;
  24. vector <int> a;
  25. int l,r;
  26. struct tree{
  27.     vector <int> t;
  28.     void bld(){
  29.         int mxn = log2(n);
  30.         cout<<"n mxn = "<<n<<' '<<mxn<<"\n";
  31.         if (pow(2, mxn) < n){
  32.             mxn++;
  33.         }
  34.         mxn = pow(2, mxn);
  35.         t.assign(2  * mxn - 1, 0);
  36.         a.resize(mxn);
  37.         for (int i = 0; i < n; ++i){
  38.             cin>>a[i];
  39.         }
  40.         int id = 2*mxn-2;
  41.         for (int i = mxn-1; i >= 0; --i){
  42.             t[id] = a[i];
  43.             id--;
  44.         }
  45.         for (int i = 2 * mxn - 2; i >= 2; i -= 2){
  46.             t[(i-1)/2]  = t[i] + t[i-1];
  47.         }
  48.     }
  49.  
  50.     void sh(){
  51.         cout<<"tree\n";
  52.         cv(t);
  53.     }
  54.     void req(char x){
  55.        
  56.     }
  57. };
  58.  
  59. int main()
  60. {
  61.     ios::sync_with_stdio(0);
  62.     cin.tie(0);
  63.     cout.tie(0);
  64.     cin>>n;
  65.     tree wrk;
  66.     wrk.bld();
  67.     //wrk.sh();
  68. }
  69.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement