Решение задачи 11.
Как и в задаче 10 заполняем сначала массив A нулями, перенумеровываем по порядку N+M позиций от 1 до N+M. Начиная с первой позиции (серая мышка) делаем ход - отсчитываем S нулевых позиций по порядку (считаем, что позиция, где сидела съеденная мышка, помечается единицей, несъеденная мышка - нулем; за N+M-ой позицией располагается первая) и выставляем в соответствующую позицию 1 мышка съедена. Далее отсчет начинаем со следующей за съеденной мыши. (Для более быстрого поиска S-той мышки среди оставшихся в круге можно использовать список, описанный в задаче 2).
Делаем P=(N+M)-(K+L) ходов.
По условию задачи в первой позиции сидит серая мышка. Есть A[1]=1 (первая мышь была съедена), то в оставшихся P-1 единичной позиции в произвольном порядке расставляем N-K-1 серых и M-L белых мышей. В оставшихся незанятыми позициях рассаживаем опять же в произвольном порядке оставшихся мышей.
Если A[1]=0, и K=0, то начальной расстановки не существует (все серые мыши съедены, а должна остаться еще одна в первой позиции); если же K<>0, то в единичных позициях рассаживаем N-K серых и M-L белых мышей, а в оставшихся позициях - в первую позицию серую мышь, а во все остальные - белых и серых в произвольном порядке.
|