UPD: Тест и условие задачи были изменены, поэтому описанное ниже решение уже не подходит. Смотрите новую версию разбора: Задача 707. Zuma. На сайте acmp.ru добавились 300 новых задач, и сейчас самое время их решить. Если представить, что состояние на поле - это вершина графа, а выстрелы, которые ведут в другие состояния - это рёбра в графе, тогда получается, что надо найти кратчайший путь в графе из текущей вершины в вершину с пустым состоянием. Эта задача решается с помощью обхода в ширину (bfs), и при таких небольших ограничениях можно писать на Python. Напишем функцию fold, которая будет реализовывать цепочку исчезновений групп из 3 и более шаров. Здесь примечательным является применение барьерного метода: чтобы отдельно не рассматривать исчезновение крайней справа группы, дописываем в конец отличный от всех символ - он ни с чем никогда не образует группу и не исчезнет, и не повлияет на результат, но теперь крайняя группа перестала быть такой, и может рассматриваться на общих основа