double_trouble

Дерево отрезков(Наташа)

Feb 26th, 2016
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.30 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. #include <cstdio>
  4. #include <vector>
  5. #include <cmath>
  6. #include <string>
  7. #include <algorithm>
  8. #include <string>
  9. #include <deque>
  10. #include <iomanip>
  11. #include <cstddef>
  12.  
  13. #define F first
  14. #define S second
  15.  
  16. using namespace std;
  17.  
  18.  
  19.  
  20. const long double eps = 0.000000005;
  21. const long double pi = 3.1415926535897932;
  22. const long long inf = 1e9;
  23.  
  24. int tree[1000000], a[100000];
  25.  
  26.  
  27. int query(int v, int l, int r, int lv, int rv)
  28. {
  29.     if (lv == r && l == rv)
  30.     {
  31.         return tree[v];
  32.     }
  33.  
  34.     int m = (l + r) / 2;
  35.  
  36.     if (m >= rv)
  37.     {
  38.         return findans(v * 2 + 1, l, m, lv, rv);
  39.     }
  40.     if (lv >= m)
  41.     {
  42.         return findans(v * 2 + 2, m, r, lv, rv);
  43.     }
  44.  
  45.     retrun findans(v * 2 + 1, l, m, lv, m) + findans(v * 2 + 2, m, r, m, rv);
  46. }
  47.  
  48.  
  49. void inc(int v, int l, int r, int k)
  50. {
  51.     if (l+1 == k)
  52.     {
  53.         tree[v] = a[k];
  54.     }
  55.  
  56.     int m = (l + r) / 2;
  57.  
  58.     if (m > k)
  59.     {
  60.         inc(v * 2 + 1, l, m, k);
  61.     }
  62.     else
  63.     {
  64.         inc(v * 2 + 2, m, r, k);
  65.     }
  66.     tree[v] = tree[2 * v + 1] + tree[2 * v + 2];
  67. }
  68.  
  69. int main()
  70. {
  71.     ios_base::sync_with_stdio(0);
  72.     //freopen("input.txt", "r", stdin);freopen("output.txt", "w", stdout);
  73.     // freopen("slalom.in", "r", stdin);freopen("slalom.out", "w", stdout);
  74.  
  75.     int n;
  76.     cin >> n;
  77.    
  78.     for (int i = 0; i < n; i++)
  79.         cin >> a[i];
  80.  
  81.     return 0;
  82. }
Add Comment
Please, Sign In to add comment