คำถาม
เราถูกกองทัพหุ่นยนต์จับอยู่ที่สถานีอวกาศ นักบินยานอวกาศของเราอยู่ในคุกซึ่งอยู่ในระดับ 1 มีวิธีเดียวเท่านั้นที่จะหลบหนีและมันช่วยนักบินอวกาศเรือของคุณ มันหมายถึงการย้ายจากระดับ N เป็นระดับ 1 อย่างไรก็ตามเนื่องจากมีความเสี่ยงมากคุณต้องเข้าคุกในขั้นตอนที่น้อยที่สุดเท่าที่จะทำได้
เงื่อนไข
มี 4 วิธีในการเคลื่อนย้าย:
- ย้ายจากระดับ N ถึงระดับ N - 1
e.g. from 12 to 11 - ย้ายจากระดับ N เป็นระดับ N + 1
e.g. from 12 to 13 - ใช้ teleport จากระดับ 2k ถึงระดับ k
e.g. from 12 to 6 - ใช้ teleport จากระดับ 3k ถึงระดับ k
e.g. from 12 to 4
- ย้ายจากระดับ N ถึงระดับ N - 1
เทเลพอร์ตมีเพียงเที่ยวเดียว (คุณสามารถได้รับ 12 ถึง 4 แต่เป็นไปไม่ได้ที่จะได้รับ 4 ถึง 12)
- ทุกการกระทำใช้ขั้นตอนเดียว
อินพุต
อินพุตควรอ่านจาก STDIN หรือทางเลือกที่ใกล้เคียงที่สุดในภาษาการเขียนโปรแกรมของคุณ การป้อนข้อมูลประกอบด้วยจำนวนเต็มที่n1 <= n <= 10^8
เอาท์พุต
ผลลัพธ์ควรเป็นจำนวนขั้นต่ำในการไปจากnระดับ 1
ตัวอย่าง
Level Minimum number of steps
1 0
8 3
10 3
267 7
100,000,000 25
ลองโปรแกรมรหัสที่จะช่วยให้เราช่วยนักบินอวกาศยานอวกาศของเราออกจากคุกในเวลาอันสั้นและกลับบ้าน!
รหัสที่สั้นที่สุดจะเป็นผู้ชนะ!