พิจารณารูปสามเหลี่ยมด้านเท่ามาตรฐานพร้อมโหนดที่มีป้ายกำกับโดยใช้พิกัด barycentric :
เราสามารถเปลี่ยนสามเหลี่ยม 3 โหนดนี้เป็นสามเหลี่ยม 6 โหนดโดยการเพิ่มบรรทัดใหม่ของ 3 จุดยอด (มากกว่าหนึ่งอยู่ด้านข้างของสามเหลี่ยมโหนด 3 เดิม) ลบขอบภายในใด ๆ (แต่ไม่ใช่โหนดภายใน) และ ปรับมาตรฐานให้เป็นพิกัด:
ทำซ้ำกระบวนการเพื่อไปจากสามเหลี่ยมโหนด 6 จุดไปยังสามเหลี่ยมโหนด 10 เพิ่มบรรทัดของจุดยอด 4 (อีกครั้งหนึ่งมากกว่ามีอยู่ด้านข้างของสามเหลี่ยมโหนด 6 เดิม) เอาขอบภายในใด ๆ (แต่ไม่ใช่โหนดภายใน ) และทำให้พิกัดกลับเป็นปกติอีกครั้ง:
กระบวนการนี้สามารถทำซ้ำได้อย่างไม่มีกำหนด เป้าหมายของการท้าทายนี้จะได้รับเป็นจำนวนเต็มN
แทนจำนวนครั้งที่กระบวนการนี้ได้ดำเนินการส่งออกโหนดทั้งหมดสำหรับรูปสามเหลี่ยมที่เกี่ยวข้องในพิกัด barycentric
อินพุต
โปรแกรม / ฟังก์ชั่นของคุณควรรับข้อมูลเป็นจำนวนเต็มแบบไม่ลบเดี่ยวซึ่งN
แสดงว่ามีการใช้กระบวนการนี้กี่ครั้ง โปรดทราบว่าสำหรับN=0
คุณควรส่งออกสามเหลี่ยมเดิมด้วย 3 โหนด
อินพุตอาจมาจากแหล่งใดก็ได้ (ฟังก์ชันพารามิเตอร์ stdio ฯลฯ )
เอาท์พุต
โปรแกรม / ฟังก์ชั่นของคุณควรส่งออกโหนดทั้งหมดในพิกัด barycentric ปกติ ลำดับของโหนดไม่สำคัญ จำนวนสามารถระบุเป็นเศษส่วน (ไม่จำเป็นต้องลดเศษส่วน) หรือหมายเลขจุดลอยตัว นอกจากนี้คุณยังสามารถส่งสัญญาณ "สเกล" เพื่อระบุโหนด ตัวอย่างเช่นผลลัพธ์ทั้ง 3 รายการต่อไปนี้เทียบเท่าและได้รับอนุญาต:
0.5,0.5,0
1/2,2/4,0
[1,1,0]/2
หากใช้การแสดงผลแบบ floating point เอาต์พุตของคุณควรแม่นยำภายใน 1% เอาท์พุทอาจจะจมใด ๆ ที่ต้องการ (stdio, ค่าตอบแทน, พารามิเตอร์ส่งคืน, ฯลฯ ) โปรดทราบว่าแม้ว่าพิกัด barycentric จะถูกกำหนดโดยไม่ซ้ำกันโดยมีเพียง 2 หมายเลขต่อโหนดคุณควรส่งออกหมายเลข 3 ทั้งหมดต่อโหนด
ตัวอย่าง
กรณีตัวอย่างถูกจัดรูปแบบเป็น:
N
x0,y0,z0
x1,y1,z1
x2,y2,z2
...
โดยที่บรรทัดแรกคืออินพุตN
และบรรทัดต่อไปนี้ทั้งหมดสร้างโหนดx,y,z
ซึ่งควรอยู่ในเอาต์พุตหนึ่งครั้ง ตัวเลขทั้งหมดจะได้รับเป็นตัวเลขทศนิยมโดยประมาณ
0
1,0,0
0,1,0
0,0,1
1
1,0,0
0,1,0
0,0,1
0.5,0,0.5
0.5,0.5,0
0,0.5,0.5
2
1,0,0
0,1,0
0,0,1
0.667,0,0.333
0.667,0.333,0
0.333,0,0.667
0.333,0.333,0.333
0.333,0.667,0
0,0.333,0.667
0,0.667,0.333
3
1,0,0
0.75,0,0.25
0.75,0.25,0
0.5,0,0.5
0.5,0.25,0.25
0.5,0.5,0
0.25,0,0.75
0.25,0.25,0.5
0.25,0.5,0.25
0.25,0.75,0
0,0,1
0,0.25,0.75
0,0.5,0.5
0,0.75,0.25
0,1,0
เกณฑ์การให้คะแนน
นี่คือรหัสกอล์ฟ โค้ดที่สั้นที่สุดในหน่วยไบต์ชนะ ช่องโหว่มาตรฐานใช้ คุณสามารถใช้บิวด์อินที่ต้องการได้
[1,2,3]/6
อย่างไร