คุณได้รับชุดค่าพิกัดอาร์บิทอล, ไม่ซ้ำกัน, 2d, จำนวนเต็มคาร์ทีเซียน: เช่น [(0,0), (0,1), (1,0)]
ค้นหาเส้นทางที่ยาวที่สุดที่เป็นไปได้จากชุดพิกัดนี้โดยมีข้อ จำกัด ว่าพิกัดสามารถ "เยี่ยมชม" เพียงครั้งเดียว (และคุณไม่ได้ "กลับมา" เพื่อประสานงานที่คุณเริ่มต้น)
สำคัญ:
คุณไม่สามารถ "ส่งต่อ" พิกัดหรือรอบ ๆ ตัวอย่างเช่นในตัวอย่างบันทึกย่อล่าสุด (รูปสี่เหลี่ยมผืนผ้า) คุณไม่สามารถย้ายจาก D เป็น A โดยไม่ได้ไปที่ C (ซึ่งอาจเป็นการตรวจทานซ้ำ สิ่งนี้ชี้ให้เห็นโดย @FryAmTheEggman
ฟังก์ชั่นอินพุต:อาร์เรย์ของพิกัดคาร์ทีเซียนแบบ 2d
ฟังก์ชั่นเอาท์พุท:ความยาวสูงสุดเท่านั้น
ผู้ชนะ: รหัสที่สั้นที่สุดชนะไม่มีการระงับ (ไม่ประหยัดเวลามากที่สุด)
ตัวอย่าง
1 : ในกรณีนี้แสดงไว้ข้างต้นเส้นทางที่ยาวที่สุดที่ไม่มีพิกัด "เข้าชม" สองครั้งคือ A -> B -> O (หรือ OBA หรือ BAO) และความยาวเส้นทางคือ sqrt (2) + 1 = 2.414
2 : ในกรณีนี้แสดงไว้ข้างต้นเส้นทางที่ยาวที่สุดที่ไม่มีพิกัด "เข้าชม" สองครั้งคือ ABOC (และเห็นได้ชัดว่า COBA, OCAB และอื่น ๆ ) และสำหรับตารางหน่วยที่แสดงจะคำนวณเป็น sqrt (2) + sqrt (2) + 1 = 3.828
หมายเหตุ: ต่อไปนี้เป็นกรณีทดสอบเพิ่มเติมที่ไม่สำคัญเหมือนสองตัวอย่างก่อนหน้านี้ นี่คือสี่เหลี่ยมผืนผ้าที่เกิดขึ้นจาก 6 พิกัด:
ที่นี่เส้นทางที่ยาวที่สุดคือ: A -> E -> C -> O -> D -> B ซึ่งคือ 8.7147
(diagonals ที่เป็นไปได้มากที่สุดเดินไปได้และไม่มีขอบตัดผ่าน)