Изменения

Перейти к: навигация, поиск
Псевдокод в общем виде
}
// Процедура ответа на множественные запросы.
void update(int node, int a, int b, int my_type val) {
// val - значение, которое поступило в качестве параметра на запрос
l = tree[node].left;
r = tree[node].right;
'''if ''' [l, r) <tex>\bigcap </tex> [a, b) == <tex> \varnothing</tex>
return;
'''if ''' [l, r) <tex>\subset </tex> [a, b)
tree[node].d = tree[node].d <tex>\odot</tex> val;
return;
}
// Функция ответа на запросы
int my_type get_ans(int node, int a, int b) {
// node - текущая вершина, a и b - границы запроса
l = tree[node].left;
r = tree[node].right;
'''if ''' [l, r )<tex>\bigcap </tex> [a, b) == <tex> \varnothing</tex>
return <tex>\perp</tex>;
'''if ''' [l, r) <tex>\subset </tex> [a, b)
return tree[node].ans <tex>\odot</tex> tree[node].d;
push(node);
333
правки

Навигация