Ви знаєте ті дерев'яні іграшки з маленькими кульковими підшипниками, де об’єкт рухається по лабіринту? Це якось так. Враховуючи лабіринт і ряд рухів, визначте, куди закінчується м'яч.
Дошка тримається вертикально, а куля рухається лише силою тяжіння при обертанні дошки. Кожен "хід" - це обертання (у радіанах).
Лабіринт - це просто концентричні круглі стіни, кожна з яких має рівно один отвір у зовнішній коридор, подібний до цього (припустимо, ці стіни є колами, а не загостреними):
Як бачите, м'яч починається посередині і намагається вийти. М'яч буде миттєво провалитися , як тільки правильна орієнтація досягається, навіть якщо це на півдорозі через обертання. Одне обертання може спричинити падіння кулі через декілька отворів. Наприклад, обертання >= 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
, ви просто працювали з великими дірками, а не стрибаючи кулями до центру отвору, коли вони падають.