ความยากลำบากในการแบ่งปันพิซซ่ากับเพื่อน ๆ เป็นเรื่องยากที่จะตรวจสอบให้แน่ใจว่าทุกคนได้รับเป็ปเปอโรนีในปริมาณที่เท่ากัน ดังนั้นงานของคุณคือการตัดสินใจว่าจะหั่นพิซซ่าอย่างเป็นธรรมเพื่อให้ทุกคนมีความสุข
คำสั่ง
เขียนโปรแกรมที่ให้รายชื่อตำแหน่งของเป็ปโปนิสบนพิซซ่าวงกลมและจำนวนชิ้นที่จะทำออกรายการของมุมที่ควรตัดพิซซ่าเพื่อให้แต่ละชิ้นมีเป็ปเปอร์โรนีจำนวนเท่ากัน มัน.
- พิซซ่ามีเพียงหน้าเดียว: เป็ปเปอร์โรนี
- เพื่อนของคุณไม่สนใจขนาดของชิ้นส่วนของพวกเขาเพียง แต่พวกเขาจะไม่ถูกหลอกจากเป็ปเปอร์โรนี
- พิซซ่าเป็นวงกลมมีศูนย์กลางอยู่ที่จุดเริ่มต้น
(0, 0)
และมีรัศมีของ1
- เป็ปเปอร์นิสเป็นวงกลมที่มีศูนย์กลางอยู่ที่ใดก็ตามที่อินพุตบอกว่าพวกเขาอยู่กึ่งกลางและมีรัศมี
0.1
- นำเข้าเป็นจำนวนเต็มที่แสดงจำนวนชิ้นที่จะทำและรายการของคู่สั่งที่แสดงถึงตำแหน่งของพริกไทยในระบบพิกัดคาร์ทีเซียน (ในรูปแบบที่เหมาะสม)
- ผลลัพธ์ควรเป็นรายการของมุมที่ระบุในเรเดียนซึ่งแสดงถึงตำแหน่งของ "การตัด" กับพิซซ่า (ในช่วง
0 <= a < 2pi
) (ในรูปแบบที่เหมาะสม) (ความแม่นยำควรเป็นอย่างน้อย+/- 1e-5
) - คุณสามารถมีเป็ปเปอร์โรนีบางส่วนบนชิ้น (เช่นถ้าพิซซ่ามีเป็ปเปอร์โรนี่หนึ่งชิ้นและต้องแบ่งให้คน 10 คนตัดพิซซ่าสิบครั้งตัดทั้งหมดหั่นผ่านเป็ปเปอร์โรนี !)
- สามารถตัด (อาจต้อง) ชิ้นผ่านพริกไทยหลาย
- Pepperonis อาจทับซ้อนกัน
ตัวอย่าง
การป้อนข้อมูล:
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ดังนั้นจำนวนไบต์น้อยที่สุดจึงจะชนะ