La dificultad de compartir pizza con amigos es que es difícil asegurarse de que todos tengan la misma cantidad de pepperoni en su porción. Por lo tanto, su tarea es decidir cómo cortar una pizza de manera justa para que todos estén felices.
Direcciones
Escriba un programa que, dada una lista de las posiciones de pepperonis en una pizza circular y el número de rebanadas que se deben hacer, emite una lista de los ángulos en los que se debe cortar la pizza para que cada rebanada tenga la misma cantidad de pepperoni eso.
- La pizza tiene un solo ingrediente: pepperoni.
- A tus amigos no les importa el tamaño de su rebanada, solo que no están engañados con ningún pepperoni.
- La pizza es un círculo centrado en el origen
(0, 0)
y con un radio de1
. - Los pepperonis son círculos centrados donde la entrada dice que están centrados y tienen un radio de
0.1
- Tome la entrada como un número entero que representa el número de cortes que se harán y una lista de pares ordenados que representan las posiciones de los pepperonis en un sistema de coordenadas cartesianas. (En cualquier formato razonable)
- La salida debe ser una lista de ángulos en radianes que represente las posiciones de los "cortes" de la pizza (en el rango
0 <= a < 2pi
). (En cualquier formato razonable) (La precisión debe ser al menos+/- 1e-5
). - Puede tener trozos parciales de un pepperoni en una rebanada (p. Ej., Si una pizza tiene un pepperoni y necesita ser compartida por 10 personas, corte la pizza diez veces, todos los cortes cortando el pepperoni. Pero asegúrese de que sea justo !)
- Un corte puede (puede ser necesario) cortar múltiples pepperonis.
- Pepperonis puede superponerse.
Ejemplos
Entrada:
8 people, pepperonis: (0.4, 0.2), (-0.3, 0.1), (-0.022, -0.5), (0.3, -0.32)
Posible salida válida:
slices at:
0, 0.46365, 0.68916, 2.81984, 3.14159, 4.66842, 4.86957, 5.46554
Aquí hay una visualización de este ejemplo (todos obtienen medio pepperoni):
Más ejemplos:
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
Puntuación
Este es el código de golf , por lo que gana el menor número de bytes.