Trudność w dzieleniu się pizzą z przyjaciółmi polega na tym, że trudno jest upewnić się, że wszyscy dostają taką samą ilość pepperoni na swoim kawałku. Twoim zadaniem jest zdecydować, jak sprawiedliwie pokroić pizzę, aby wszyscy byli zadowoleni.
Kierunki
Napisz program, który, biorąc pod uwagę listę pozycji pepperoni na okrągłej pizzy i liczbę plasterków do zrobienia, wyświetla listę kątów, pod którymi pizza powinna być pokrojona, aby każdy plasterek miał taką samą ilość pepperoni na to.
- Pizza ma tylko jeden dodatek: pepperoni.
- Twoi przyjaciele nie dbają o rozmiar swojego plasterka, tylko że nie są oszukani z żadnego pepperoni.
- Pizza jest kołem wyśrodkowanym na początku
(0, 0)
i promieniu1
. - Peponiony są okręgami, które są wyśrodkowane wszędzie tam, gdzie dane wejściowe mówią, że są wyśrodkowane i mają promień
0.1
- Weź dane wejściowe jako liczbę całkowitą reprezentującą liczbę wycinków do wykonania i listę uporządkowanych par reprezentujących pozycje pepperonis w kartezjańskim układzie współrzędnych. (W dowolnym rozsądnym formacie)
- Wyjściem powinna być lista kątów podana w radianach, która reprezentuje pozycje „cięć” pizzy (w zakresie
0 <= a < 2pi
). (W dowolnym rozsądnym formacie) (Precyzja powinna być co najmniej+/- 1e-5
.) - Na plasterku możesz mieć częściowe kawałki pepperoni (np. Jeśli pizza ma jeden pepperoni i musi być dzielony przez 10 osób, pokrój pizzę dziesięć razy, wszystkie kawałki pokrój przez pepperoni. Ale upewnij się, że jest sprawiedliwa !)
- Kawałek może (może trzeba) przeciąć wiele pepperoni.
- Pepperoni mogą się nakładać.
Przykłady
Wejście:
8 people, pepperonis: (0.4, 0.2), (-0.3, 0.1), (-0.022, -0.5), (0.3, -0.32)
Możliwe prawidłowe dane wyjściowe:
slices at:
0, 0.46365, 0.68916, 2.81984, 3.14159, 4.66842, 4.86957, 5.46554
Oto wizualizacja tego przykładu (każdy dostaje pół pepperoni):
Więcej przykładów:
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
Punktacja
To jest golf golfowy , więc wygrywa najmniejsza liczba bajtów.