Advertisement
skimono

DD2 with mass

Jul 12th, 2022
1,230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.98 KB | None | 0 0
  1. cin >> j >> l >> r;
  2.             l--;r--;
  3.             l1 = (l + 1) / 2;
  4.             r1 = r / 2;
  5.             l2 = l / 2;
  6.             r2 = (r - 1) / 2;
  7.             if (j == 1) {
  8.                 dd2::Node* less, * equal, * greater;
  9.                 dd2::Node* less2, * equal2, * greater2;
  10.                 tree.split(tree.root, l1, less, greater);
  11.                 tree.split(greater, r1 - l1 + 1, equal, greater);
  12.                 tree2.split(tree2.root, l2, less2, greater2);
  13.                 tree2.split(greater2, r2 - l2 + 1, equal2, greater2);
  14.                 tree.root = tree.merge(tree.merge(less, equal2), greater);
  15.                 tree2.root = tree2.merge(tree2.merge(less2, equal), greater2);
  16.             }
  17.             else {
  18.                 if (l == 0 && r == 0) {
  19.                     cout << tree.getSum(l1, r1) << endl;
  20.                 }
  21.                 else {
  22.                     cout << tree.getSum(l1, r1) + tree2.getSum(l2, r2) << endl;
  23.                 }
  24.             }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement