Решая задачу 251C - Number Transformation, столкнулся с такой проблемой:
Мой код ловит какой-то странный рантайм. То на 3 тесте, то на 9, то ВА 5. Локально рантайм тоже вылетает не всегда. Если убрать поставленные cerr
, то рантайм вылетает всегда, с ними — рандомно. Оптимизацию -O2
я не включал.
Идея решения такова: есть функция make
, принимающая 2 параметра l и r. Она возвращает минимальное количество ходов, необходимых чтобы из числа r получить число l. Ну и дальше очевидные ифы из кода. Если что не понятно — пишите, объясню.
В 70 строке dp[l+1] выходит за пределы массива на последней итерации цикла. Если увеличить массив на 1 перестает падать на семпле.
Спасибо большое — AC. Но почему рантайм вылетал рандомно?
Честно говоря, не знаю. Казалось бы на одних и тех же данных должно вылетать в одном месте.
В любом случае, спасибо. За минусы тоже
Нет, за выделение памяти отвечает система. Иногда можно вмазать по памяти, и все будет нормально, но иногда эта память уже занята чем-то другим, вот тогда и приходит рантайм.
Все, дошло. Спасибо вам.