Изменения

Перейти к: навигация, поиск
Реализация
<code>
int get_sum (int <tex>node</tex>, int <tex>a</tex>, int <tex>b</tex>)
{
<tex>l</tex> = tree[<tex>node</tex>].left; <tex>r</tex> = tree[<tex>node</tex>].right; if <tex>[l, r)<tex>\bigcap </tex>[a, b)</tex> == <tex> \varnothing</tex>
return 0;
if <tex>[l, r)</tex> == <tex>[a, b)</tex> return tree[<tex>node</tex>]; int <tex>m</tex> = (<tex>l</tex> + <tex>r</tex>) / 2; return get_sum (<tex>node</tex> * 2 + 1, <tex>a</tex>, min(<tex>b</tex>, <tex>m</tex>)) + get_sum (<tex>node</tex> * 2 + 2, max(<tex>a</tex>, <tex>m</tex>), <tex>b</tex>);
}
</code>
Анонимный участник

Навигация