Некоторое время назад в задаче были изменены тесты (и немного условие), поэтому решение из предыдущего разбора не проходит: Задача 707. Zuma. Давайте перерешивать: Если представить, что состояние на поле - это вершина графа, а выстрелы, которые ведут в другие состояния - это рёбра в графе, тогда получается, что надо найти кратчайший путь в графе из текущей вершины в вершину с пустым состоянием. Эта задача решается с помощью обхода в ширину (bfs). Но всевозможных состояний может быть очень много, поэтому надо попробовать их уменьшить (при этом не пропустив кратчайший путь). Во-первых, понятно, что стрелять всегда можно в начало группы. Это уменьшит количество рёбер, но не состояний. Во-вторых, стрелять надо всегда до исчезновения группы. То есть, если это группа из одного шара, то надо сразу делать два выстрела слева от него. Эта оптимизация сильно уменьшает и количество состояний, и количество рёбер. Например для даже для небольшого теста ABC: Но тогда у нас возникают шаги длины 2, а к