9
จำนวนกระโดดขั้นต่ำ
กำหนดลำดับของตัวเลขค้นหาจำนวนกระโดดขั้นต่ำที่จะไปจากตำแหน่งเริ่มต้นไปยังจุดสิ้นสุดและกลับมาที่ตำแหน่งเริ่มต้นอีกครั้ง แต่ละองค์ประกอบของลำดับหมายถึงจำนวนการเคลื่อนไหวสูงสุดที่เราสามารถเคลื่อนที่ได้จากตำแหน่งนั้น ที่ตำแหน่งใด ๆ คุณสามารถกระโดดได้ที่ max k ย้ายโดยที่ k คือค่าที่เก็บไว้ที่ตำแหน่งนั้น หลังจากถึงจุดสิ้นสุดคุณสามารถใช้เฉพาะตำแหน่งเหล่านั้นสำหรับการกระโดดซึ่งไม่ได้ใช้ก่อนหน้านี้สำหรับการกระโดด อินพุตจะถูกกำหนดเป็นลำดับตัวเลขโดยคั่นด้วยช่องว่างเดี่ยว เอาต์พุตควรเป็นตัวเลขเดี่ยวซึ่งเป็นจำนวนกระโดดขั้นต่ำที่ใช้ หากไม่สามารถไปยังจุดสิ้นสุดและกลับมาที่ตำแหน่งเริ่มต้นให้พิมพ์-1 การป้อนข้อมูล: 2 4 2 2 3 4 2 2 เอาท์พุท: 6 (3 ถึงจุดสิ้นสุดและ 3 เพื่อกลับมา) อินพุต 1 0 เอาท์พุต -1 บันทึก สมมติว่าตัวเลขทั้งหมดในลำดับนั้นไม่เป็นลบ แก้ไข 1 บรรทัด "ดังนั้นจึงควรมีความชัดเจนว่าสามารถข้ามจากตำแหน่งสุดท้ายได้เสมอ" อาจสับสนดังนั้นฉันลบมันออกจากคำถาม มันจะไม่มีผลกับคำถาม เกณฑ์การชนะ: ผู้ชนะจะได้รับรหัสที่สั้นที่สุด