69
правок
Изменения
→Псевдокод
==Псевдокод==
Пусть результат считаем на отрезке [<tex> left, right </tex>]. При этом значения <tex>left</tex> и <tex>right</tex>, передающиеся в функцию, должны указывать на листья дерева (необходимо увеличить значение на индекс массива, с которого начинаются листья). Переменные <tex>left</tex>_<tex>resleftRes</tex> и <tex>right</tex>_<tex>resrightRes</tex> будут собирать значения на отрезках, отделившихся соответственно слева или справа от рассматриваемого.
'''int''' query(left : '''int''', right : '''int'''):
'''while''' left < right
'''if''' left '''mod''' 2 == 0
left = left '''div''' 2
'''if''' right '''mod''' 2 == 1
right = (right - 1) '''div''' 2
'''if''' left == right
==Ссылки==