Изменения

Перейти к: навигация, поиск
Нет описания правки
if (отрезок соответственный v содержится в [l, r])
return tree[v] + d[v]
// Раздаем детям
d[2*v+1] = d[2*v+1] + d[v]
d[2*v+2] = d[2*v+2] + d[v]
d[v] = 0
// Вызываем функцию от детей
ans = min(get_min(2*v+1, l, r), get_min(2*v+2, l, r))
// Пересчитываем свое значение
T[v] = min(T[2*v+1] + d[2*v+1], T[2*v+2] + d[2*v+2])
return ans
return
}
// Раздаем детям
d[2*v+1] = d[2*v+1] + d[v]
d[2*v+2] = d[2*v+2] + d[v]
d[v] = 0
// Вызываем функцию от детей
update(2*v+1, l, r, x)
update(2*v+2, l, r, x)
// Пересчитываем свое значение
T[v] = min(T[2*v+1]+d[2*v+1],T[2*v+2]+d[2*v+2])
return ans
}
Анонимный участник

Навигация