มีลูกบอล n ลูก เรียง 1,2,...,n ทำการกลับลำดับซ้ำ n ครั้ง: ครั้งแรกกลับทั้งหมด, ครั้งที่สองกลับตั้งแต่ตำแหน่ง 1 ถึง n, ครั้งที่สามกลับตั้งแต่ตำแหน่ง 2 ถึง n, ... หาตำแหน่งของลูกบอลที่เริ่มต้นอยู่ที่ index หลังจากการกลับลำดับทั้งหมด
ตัวอย่าง: balls=5, index=2 → ผลลัพธ์ 4
ขั้นตอนการแก้ปัญหา
สังเกตรูปแบบ: หาก index < n//2 ตำแหน่งสุดท้าย = 2*index + 1 มิฉะนั้น = 2*(n - index - 1)
ตัวอย่างโค้ด Python
def solve(balls, index):
if index < balls // 2:
return 2 * index + 1
else:
return 2 * (balls - index - 1)
# ทดสอบ
print(solve(5, 2)) # ผลลัพธ์: 4
อินพุตตัวอย่าง
5, 2
เอาต์พุตตัวอย่าง
4