Вы знаете те деревянные игрушки с маленькими шарикоподшипниками, где цель состоит в том, чтобы перемещаться по лабиринту? Это как то так. Учитывая лабиринт и серию ходов, определите, где мяч заканчивается.
Доска удерживается вертикально, и шар вращается только под действием силы тяжести, когда доска вращается. Каждый «ход» - это вращение (в радианах).
Лабиринт представляет собой просто концентрические круглые стены, где каждая стена имеет ровно одно отверстие во внешнем коридоре, аналогично этому (предположим, что эти стены являются кругами и не заострены):

Как видите, мяч начинается посередине и пытается выбраться. Мяч будет мгновенно провалиться , как только правильная ориентация достигается, даже если это на полпути через вращение. Одно вращение может привести к падению шара через несколько отверстий. Например, вращения >= n * 2 * piдостаточно, чтобы избежать любого лабиринта.
Для целей игры шар, расположенный в 0.001радианах отверстия, считается «подходящим» и будет падать в следующий коридор.
Входные данные:
Вход состоит из двух частей:
Лабиринт задается целым числом,
nпредставляющим, сколько стен / отверстий в лабиринте. Далее следуютnстроки с одним номером на каждой, обозначающие, где находится проход в следующий коридор.Ходы задаются как целое число,
mпредставляющее, сколько ходов было предпринято, после чего (опять же на отдельных строках) следуетmповорот доски по часовой стрелке в радианах (минус против часовой стрелки).
Все положения прохода даны как 0 rad = upположительные радианы, идущие по часовой стрелке.
Для приведенного выше примера изображения вход может выглядеть следующим образом:
7 // 7 openings
0
0.785398163
3.14159265
1.74532925
4.71238898
4.01425728
0
3 // 3 moves
-3.92699082
3.14159265
0.81245687
Выходные данные:
Выведите номер коридора, в котором заканчивается шар. Коридоры имеют нулевую индексацию, начиная с центра, поэтому вы начинаете с 0. Если вы проходите через одно отверстие, вы находитесь в коридоре 1. Если вы выходите из всего лабиринта, выведите любое целое число>= n
Для ввода образца есть три хода. Первый вызовет падение шарика через два отверстия. Второй не находит отверстия, а третий находит его . Мяч сейчас находится в коридоре 3, поэтому ожидаемый результат:
3
Поведение не определено для неверного ввода. Допустимый ввод правильно сформирован, с n >= 1и m >= 0.
Подсчет очков - стандартный код гольфа, выигрывает наименьшее количество байтов. Стандартные лазейки запрещены. Ввод не должен быть жестко запрограммирован, но может быть взят из стандартного ввода, аргументов, консоли и т. Д. Вывод может быть в консоль, файл, что угодно, просто сделать его вывод где-то видимым.
1, вы бы просто работали с большими отверстиями, а не прыгали шары в центр отверстия, когда они падают.
