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