Ad
  • Default User Avatar

    При проходе вперед заполняем результат по наименьшему значению расстояний вверх и вправо - относительно текущей клетки:
    res[it] += std::min(res[it - 1], res[it - width]);
    а при проходе назад расстояния вверх и вправо уже есть, поэтому вычисляется наименьшее среди всех направлений:
    res[it] += std::min({res[it - 1], res[it - width], res[it + 1], res[it + width]});

  • Default User Avatar

    что именно не понятно?

  • Default User Avatar

    Do you speak Russian? I barely speak English.