Lo_R_D's blog

By Lo_R_D, history, 8 years ago, In Russian

Добрый день.

Начну по порядку: вчера я два часа писал двумерное дерево отрезков с операцией суммы на сжатых координатах с хранением только ненулевых вершин. После этого еще два часа ушли на поиск ошибки. Потом начался раунд Aim Tech, и только после него я смог найти причину вердикта "Ошибка исполнения на тесте 17". Взгляните на следующий код и то как он работает.

Сначала я думал, что это срабатывает только для нулевой вершины, поэтому просто пропускал её. Но решить проблему с "Ошибкой исполнения" помогло лишь то, что перед использованием функции getNext() (а так же функций getLeft() и getRight()) я дополнительно вызываю их один раз без использования того, что они возвращают, потому что то что они могут вернуть после первого вызова — непредсказуемо. В частности: на Codeforces этот код вместо нуля выводит 24, у меня на компьютере — случайное большое число.

  • Vote: I like it
  • -8
  • Vote: I do not like it