![]() |
|
|
![]()
|
|
| lokiki |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 31.5.2013 Репутация: нет Всего: нет |
Есть поле размером 4×4. На нём расположены фишки, у которых одна сторона окрашена в белый цвет, а другая — в чёрный. Какие-то из них в данный момент лежат белой стороной вверх, какие-то вниз. За один ход можно перевернуть одну фишку и все соседние по горизонтали или вертикали с ней. Целью игры является позиция, в которой все фишки лежат одной стороной вверх (все чёрные либо все белые).
Естественно, такая игра быстро надоедает, неожиданных и нетипичных позиций становится всё меньше и меньше. Поэтому сейчас в СКБ Контур больше распространён модифицированный вариант игры. В этом варианте ход заключается в перекладывании фиксированной комбинации фишек, попадающей в квадрат 3×3. Например, ход может заключаться в переворачивании всех соседей выбранной фишки по диагонали. Комбинация выбирается произвольной; её можно задать в виде поля 3×3, где центральная клетка соответствует той, в которую делается ход. Например на рисунке слева вверху показана комбинация для обычной игры, а внизу — для описанной в предыдущем абзаце. Заметим, что комбинация не обязана быть симметричной. Ход делается всегда в одну из клеток игрового поля (то есть центральная клетка квадрата 3×3, определяющего ход, выбирается из клеток поля). Предписания комбинации на переворачивание фишек, попадающих за пределы поля, игнорируются. Для такой игры бывает неплохо знать, можно ли вообще перевернуть все фишки одной стороной вверх, и если можно, то за какое минимальное число ходов. Вот вам и предстоит сделать программу, которая могла бы дать ответ на эти вопросы. Исходные данные В первых четырёх строках описывается начальное расположение фишек. Символ 'W' — обозначает фишку, лежащую вверх белой стороной, символ 'B' — чёрной. В следующих трёх строках описывается ход — комбинация переворачиваемых фишек. '0' — фишку переворачивать не надо, '1' — надо. Результат Если добиться нужного расположения фишек невозможно, то выведите надпись «Impossible», иначе выведите минимальное количество ходов, за которое это расположение достигается. пример здесь http://acm.timus.ru/problem.aspx?space=1&num=1122 Очень сложная задачка для меня...Помогите кто чем сможет, хотябы натолкните на мысль, в какую сторону думать. Это сообщение отредактировал(а) lokiki - 31.5.2013, 10:35 |
|||
|
||||
![]()
|
| Правила форума Prolog | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Prolog | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |