row, а у игрока есть запас шариков reserve. Цвета обозначены буквами: R — красный, Y — жёлтый, B — синий, G — зелёный, W — белый.
За один ход игрок берёт любой шарик из запаса и вставляет его в ряд: между любыми двумя соседними шариками или с любого края. Если после этого где-то стоят подряд три или больше шариков одного цвета, вся такая группа исчезает, а ряд смыкается. Если от смыкания образуется новая группа из трёх и более одноцветных шариков, она тоже исчезает — и так далее, пока такие группы не кончатся.
Игрок выигрывает, когда ряд становится пустым. Верните наименьшее число шариков из запаса, которое нужно потратить, чтобы расчистить ряд, или -1, если запаса на это не хватит.row="WRRW", reserve="RW" → 2
Вставляем R к паре RR: WRRRW → WW. Затем W: WWW → пусто. Понадобилось 2 шарика.
row="YGGY", reserve="G" → -1
Единственный шарик G убирает середину, но два Y остаются, а запас кончился.
row="B", reserve="BBB" → 2
Добавляем два B по очереди: BB, затем BBB → пусто. Третий шарик не нужен.
row и reserve состоят только из букв R, Y, B, G, Wrow="WRRW", reserve="RW"
2
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 4 теста на сервере, включая скрытые.