Складність спільного використання піци з друзями полягає в тому, що важко переконатися, що кожен отримає однакову кількість перцю на свій шматочок. Отже, ваше завдання - вирішити, як справедливо нарізати піцу, щоб всі були задоволені.
Напрямки
Напишіть програму, яка, враховуючи перелік положень пепероніса на круговій піці та кількість скибочок, які потрібно зробити, виводить список кутів, на які піцу слід вирізати, щоб кожен шматочок мав однакову кількість перцеронів на це.
- Піца має лише один начинка: пепероні.
- Ваших друзів не хвилює розмір їхнього шматочка, лише щоб їх не обдурили жодні перчинки.
- Піца - це коло з центром походження
(0, 0)
та радіусом1
. - Пеппероніс - це кола, які розташовані по центру, де б вхід не говорив, що вони по центру і мають радіус
0.1
- Введіть введення як ціле число, яке представляє кількість фрагментів, які потрібно зробити, і список упорядкованих пар, які представляють положення пепероніса на декартовій системі координат. (У будь-якому розумному форматі)
- Вихід повинен бути переліком кутів, наведеним у радіанах, що представляє позиції "надрізів" піци (в діапазоні
0 <= a < 2pi
). (У будь-якому розумному форматі) (Точність повинна бути як мінімум+/- 1e-5
.) - Ви можете мати частинки шматочка пепероні на шматочку (напр., Якщо піца містить один пепероні на ній, і його потрібно ділити 10 людьми, піцу виріжте десять разів, а всі надрізи проріжте через пепероні. Але переконайтеся, що це справедливо !)
- Розріз може (можливо, доведеться) прорізати через кілька пепперонісів.
- Пеппероніс може перекриватися.
Приклади
Вхід:
8 people, pepperonis: (0.4, 0.2), (-0.3, 0.1), (-0.022, -0.5), (0.3, -0.32)
Можливий дійсний вихід:
slices at:
0, 0.46365, 0.68916, 2.81984, 3.14159, 4.66842, 4.86957, 5.46554
Ось візуалізація цього прикладу (кожен отримує половину пепероні):
Більше прикладів:
Input: 9 people, 1 pepperoni at: (0.03, 0.01)
Output: 0, 0.4065, 0.8222, 1.29988, 1.94749, 3.03869, 4.42503, 5.28428, 5.83985
Input: 5, (0.4, 0.3), (0.45, 0.43), (-0.5, -0.04)
Output: 0, 0.64751, 0.73928, 0.84206, 3.18997
Оцінка балів
Це код-гольф , тому виграє найменше кількість байтів.