피자를 친구들과 공유하는 데 어려움은 모든 사람이 슬라이스에서 같은 양의 페퍼로니를 얻는 것이 어렵다는 것입니다. 따라서 당신의 임무는 모든 사람이 행복하도록 피자를 공정하게 슬라이스하는 방법을 결정하는 것입니다.
지도
원형 피자에서 페퍼로니의 위치 목록과 만들 슬라이스 수를 제공하여 각 슬라이스가 같은 양의 페퍼로니를 갖도록 피자를 잘라야하는 각도 목록을 출력하는 프로그램을 작성하십시오. 그것.
- 피자에는 단 하나의 토핑이 있습니다 : 페퍼로니.
- 친구들은 슬라이스 크기에 신경 쓰지 않고 페퍼로니로 속이지 않습니다.
- 피자는 원점을 중심으로 원이다
(0, 0)
와 함께 반경1
. - 페퍼로니는 입력이 중앙에 있고 반경이
0.1
- 직교 좌표계에서 페퍼로니의 위치를 나타내는 슬라이스 수와 정렬 된 쌍 의 목록 을 나타내는 정수 로 입력하십시오 . (합리적인 형식으로)
- 출력은 피자에 대한 "컷"위치를 나타내는 라디안 으로 표시된 각도 목록이어야합니다 ( 범위
0 <= a < 2pi
). (적절한 형식으로) (정밀도 이상이어야+/- 1e-5
합니다.) - 페퍼로니 조각 한 조각을 슬라이스에 넣을 수 있습니다 (예 : 피자에 페퍼로니가 하나 있고 10 명이 공유해야하는 경우 피자를 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
채점
이것은 code-golf 이므로 바이트 수가 가장 적습니다.