La difficulté de partager une pizza avec des amis est qu'il est difficile de s'assurer que tout le monde reçoit la même quantité de pepperoni sur sa tranche. Donc, votre tâche est de décider comment trancher une pizza de manière équitable afin que tout le monde soit heureux.
instructions
Écrivez un programme qui, étant donné une liste des positions des pepperonis sur une pizza circulaire et le nombre de tranches à faire, affiche une liste des angles sur lesquels la pizza doit être coupée afin que chaque tranche ait la même quantité de pepperoni il.
- La pizza n'a qu'une seule garniture: le pepperoni.
- Vos amis ne se soucient pas de la taille de leur tranche, juste qu'ils ne sont pas trompés de pepperoni.
- La pizza est un cercle centré sur l'origine
(0, 0)
et avec un rayon de1
. - Les pepperonis sont des cercles qui sont centrés partout où l'entrée indique qu'ils sont centrés et ont un rayon de
0.1
- Prenez l'entrée comme un entier qui représente le nombre de tranches à faire et une liste de paires ordonnées qui représentent les positions des pepperonis sur un système de coordonnées cartésiennes. (Dans tout format raisonnable)
- La sortie doit être une liste d'angles donnée en radians qui représente les positions des "coupes" de la pizza (dans la plage
0 <= a < 2pi
). (Dans tout format raisonnable) (La précision doit être d'au moins+/- 1e-5
.) - Vous pouvez avoir des morceaux partiels de pepperoni sur une tranche (par exemple. Si une pizza a un pepperoni dessus et qu'elle doit être partagée par 10 personnes, coupez la pizza dix fois, toutes les coupes tranchant à travers le pepperoni. Mais assurez-vous que c'est juste !)
- Une coupe peut (peut-être devoir) couper à travers plusieurs pepperonis.
- Pepperonis peut se chevaucher.
Exemples
Contribution:
8 people, pepperonis: (0.4, 0.2), (-0.3, 0.1), (-0.022, -0.5), (0.3, -0.32)
Sortie valide possible:
slices at:
0, 0.46365, 0.68916, 2.81984, 3.14159, 4.66842, 4.86957, 5.46554
Voici une visualisation de cet exemple (tout le monde obtient un demi-pepperoni):
Plus d'exemples:
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
Notation
Il s'agit de code-golf , donc le moins d'octets gagne.