Josif_tepe

Untitled

Mar 18th, 2026
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. #include <iostream>
  2. #include <queue>
  3. #include <vector>
  4. #include <cstring>
  5. using namespace std;
  6. const int maxn = 2e5 + 5;
  7.  
  8. int segment_tree[3 * maxn];
  9. int a[maxn];
  10.  
  11. int merge_nodes(int A, int B) {
  12.     return A + B;
  13. }
  14. void build_tree(int L, int R, int node) {
  15.     if(L == R) {
  16.         segment_tree[node] = a[L];
  17.     }
  18.     else {
  19.         int middle = (L + R) / 2;
  20.         build_tree(L, middle, 2 * node);
  21.         build_tree(middle + 1, R, 2 * node + 1);
  22.         segment_tree[node] = merge_nodes(segment_tree[2 * node], segment_tree[2 * node + 1]);
  23.     }
  24. }
  25. int main()
  26. {
  27.     ios_base::sync_with_stdio(false);
  28.     int n;
  29.     cin >> n;
  30.    
  31.     for(int i = 0; i < n; i++) {
  32.         cin >> a[i];
  33.     }
  34.    
  35.     build_tree(0, n - 1, 1);
  36.    
  37.     for(int i = 1; i <= 15; i++) {
  38.         cout << segment_tree[i] << " ";
  39.     }
  40.     return 0;
  41. }
  42.  
Advertisement
Add Comment
Please, Sign In to add comment