วงกลมและสี่เหลี่ยมมีจุดกึ่งกลางที่ชัดเจน อย่างไรก็ตามแนวคิดของจุดศูนย์กลางของสามเหลี่ยมนั้นได้ถูกกล่าวถึงมานานแล้ว ชาวกรีกโบราณรู้จักศูนย์สี่แห่งที่ต่างกัน:
- Incenter : จุดตัดของเส้นแบ่งครึ่งมุมของสามเหลี่ยม
- Centroid : จุดตัดของเส้นจากแต่ละจุดยอดของรูปสามเหลี่ยมไปจนถึงจุดกึ่งกลางของด้านตรงข้าม
- Circumcenter : จุดตัดของเส้นแบ่งครึ่งตั้งฉากของด้านข้าง
- Orthocenter : จุดตัดของระดับความสูงของรูปสามเหลี่ยม
ออยเลอร์พิสูจน์ในภายหลังว่า centroid, circumcenter และ orthocenter เป็น collinear ในรูปสามเหลี่ยมใด ๆ บรรทัดที่ทั้งสามจุดอยู่ในรูปสามเหลี่ยมเรียกว่าสายออยเลอร์ มันถูกกำหนดไว้สำหรับทุกสามเหลี่ยมยกเว้นสามเหลี่ยมด้านเท่าซึ่งจุดทั้งหมดตรง
ความท้าทายของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นที่สั้นที่สุดซึ่งเมื่อได้รับสองอินพุทจะให้ผลออกมาเป็นศูนย์กลางเฉพาะหรือ Euler Line ของรูปสามเหลี่ยม ก่อนระบุพิกัดของจุดสุดยอดแต่ละจุดของรูปสามเหลี่ยม ที่สองคือจำนวนเต็มจาก 1 ถึง 5 กำหนดสิ่งที่จะส่งออก
1 - Incenter
2 - Centroid
3 - Circumcenter
4 - Orthocenter
5 - Equation of Euler Line
(if the Euler Line is vertical, output the `x` value of the line
(e.g. output `5` if the equation of the line is `x = 5`))
คุณอาจสันนิษฐานได้ว่าจุดยอดที่กำหนดจะไม่ collinear และว่าพวกเขาจะเป็นพิกัดจำนวนเต็มเสมอ (สิ่งนี้ยังไม่รวมถึงความเป็นไปได้ของการมีรูปสามเหลี่ยมด้านเท่าเป็นอินพุตตามความคิดเห็นของ @ R.Kap )
อาร์เรย์อินพุตควรเป็นอาร์เรย์ซ้อนกันที่ถูกต้องในภาษาของคุณและอินพุตควรอยู่ในรูปแบบที่เหมาะสม ค่าทศนิยมใด ๆ ควรแสดงเป็นทศนิยมอย่างน้อย 3 ตำแหน่ง แต่ไม่น้อย จุดเอาท์พุทควรเป็นอาร์เรย์ที่ถูกต้องในภาษาของคุณจับคู่กับรูปแบบการป้อนข้อมูล
กรณีทดสอบ:
Input: [(-2, 0), (1, 0), (0, 1)] 1
Output: (-0.089, 0.451)
Input: [(-2, 0), (1, 0), (0, 1)] 2
Output: (-0.333, 0.333)
Input: [(-2, 0), (1, 0), (0, 1)] 3
Output: (-0.5, -0.5)
Input: [(-2, 0), (1, 0), (0, 1)] 4
Output: (0, 2)
Input: [(-2, 0), (1, 0), (0, 1)] 5
Output: 5x + 2
Clarification:อินพุตอาจมาจาก stdin, ช่องว่างหรือบรรทัดใหม่คั่นหรือเป็นอาร์กิวเมนต์ของฟังก์ชัน อย่างไรก็ตามเอาต์พุตต้องถูกเขียนลงใน stdout
y=f(x)
ถ้ามันเป็นแนวตั้งก็ไม่สามารถจะแสดงเป็น
(if the triangle is equilateral, output the point at which the centers meet)
เพราะมันเป็นไปไม่ได้ที่จะสร้างรูปสามเหลี่ยมด้านเท่าบนเครื่องบินพิกัดโดยใช้พิกัดจำนวนเต็มเท่านั้น