В настольной игре фишка должна дойти с клетки номер 1 до клетки номер N. На каждом ходу игрок бросает кубик и двигает фишку на столько клеток вперёд, - вопрос №2220392

какое число выпало на кубике. Попасть нужно ровно в клетку N, если игрок «перешагнул» её, то начинает игру заново.

Некоторые клетки поля помечены как «win», попав на такую клетку в результате броска кубика, фишка перемещается в клетку с большим номером. Также есть клетки поля, помеченные как «fail» — попав на неё в результате броска кубика, фишка перемещается в клетку с меньшим номером. При этом перемещение по «win» или «fail» происходит один раз, то есть даже если в результате такого перемещения фишка попала на клетку, помеченную «win» или «fail», то она остаётся в ней до следующего броска кубика. Если из клетка с номером N помечена как «win» или «fail», то переход тоже осуществляется и игра не заканчивается.

Группа студентов собралась сыграть в настольную игру на встрече, однако, ни у кого не нашлось кубика. Зато ноутбуков было в достатке и Васю попросили написать программу, которая будет генерировать случайные числа от 1 до 6.Но Васе очень нравится Маша и он хочет, чтобы ей выпадали такие числа, которые приведут её фишку к победе за наименьшее число ходов.

изображение из вопроса


На рисунке сплошными стрелками показаны ходы по броску кубика, а пунктирными — переходы «win» или «fail».

Формат входных данных
В первой строке записано натуральное число N (1 ≤ N ≤ 100000) — количество клеток поля.
В следующей строке записано N натуральных чисел Wi (1 ≤ Wi ≤ N). Число Wi обозначает, что попав в клетку i в результате броска кубика, фишка перемещается в клетку Wi.

Формат результата
Выведите число K — наименьшее количество ходов.
В следующей строке выведите K чисел от 1 до 6 — какие числа должны выпадать на кубике для того, чтобы фишка дошла от клетки 1 до клетки N за K ходов. Если решений несколько — выведите любое из них. Гарантируется, что решение существует.

Примеры
Входные данные
9 1 2 1 7 5 4 4 7 9
Результат работы
2 3 2

Ответы

Ответил Вам в технологии/C++
01.12.16

Еva

Читать ответы
Посмотреть всех экспертов из раздела Учеба и наука > Информатика
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store