Solução Intermediário Informática – Semana 41

por

Solução de Frederico Bulhões

Para esse problema vamos usar uma estrutura chamada de segment tree. Com ele podemos consultar mínimo e máximo em um intervalo qualquer e também podemos fazer updates um uma posição.

Para responder cada query vamos fazer a consulta da máximo naquele intervalo e subtrair pela consulta de mínimo daquele intervalo. O mudança de preço é simplismente um update normal em uma segment tree.

Caso queira aprender melhor a estrutura da segment tree pode consutar a aula do Codcad de segment tree.

Código para melhor entendimento:

https://gist.github.com/fredbr/7740cac2f4d32f7fcb0b428d9a691c12