Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cin >> j >> l >> r;
- l--;r--;
- l1 = (l + 1) / 2;
- r1 = r / 2;
- l2 = l / 2;
- r2 = (r - 1) / 2;
- if (j == 1) {
- dd2::Node* less, * equal, * greater;
- dd2::Node* less2, * equal2, * greater2;
- tree.split(tree.root, l1, less, greater);
- tree.split(greater, r1 - l1 + 1, equal, greater);
- tree2.split(tree2.root, l2, less2, greater2);
- tree2.split(greater2, r2 - l2 + 1, equal2, greater2);
- tree.root = tree.merge(tree.merge(less, equal2), greater);
- tree2.root = tree2.merge(tree2.merge(less2, equal), greater2);
- }
- else {
- if (l == 0 && r == 0) {
- cout << tree.getSum(l1, r1) << endl;
- }
- else {
- cout << tree.getSum(l1, r1) + tree2.getSum(l2, r2) << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement