เกม: เปรียบเทียบ arr[0] กับ arr[1] ค่ามากกว่าชนะอยู่ index 0 ค่าน้อยกว่าไปท้าย array ทำซ้ำจนกว่าจะมีค่าใดชนะ k รอบติดกัน เนื่องจากค่ามากที่สุดของ array จะชนะทุกค่าอื่นเมื่อมันไปอยู่ index 0 คำตอบคือ max(arr) ถ้า k >= n-1 มิฉะนั้น simulate จนกว่าจะได้ k consecutive wins
ขั้นตอนการทำงาน
- prev = arr[0], count = 0
- วน i=1..n-1: ถ้า prev > arr[i]: count++ มิฉะนั้น prev = arr[i], count = 1
- ถ้า count == k: return prev
- จบลูป: return prev (ค่ามากที่สุด)
ตัวอย่างโค้ด
def solve(arr, k):
l = len(arr)
prev = arr[0]
count = 0
for i in range(1, l):
if prev > arr[i]:
count += 1
else:
prev = arr[i]
count = 1
if count == k:
return prev
return prev
arr = [1, 5, 6, 3, 4, 2]
k = 3
print(solve(arr, k)) # Output: 6
อินพุต/เอาต์พุต
Input: [1,5,6,3,4,2], k=3 Output: 6
Round 1: 5 wins, Round 2: 6 wins, Round 3: 6 wins, Round 4: 6 wins (3 consecutive)