將每一個基地台的下一個基地台位置紀錄下來,可以使用陣列的方式來紀錄,這邊命名叫 next。另外,可以使用 map<int, int> 來紀錄每一個基地台可以跑多遠,這邊命名叫 MAP。
跑一個 For迴圈 從 0 到 N-2,並且宣告兩個變數 pos = 0、step = MAP[0],分別代表目前的位置和還有幾步可以走。如果 pos + step >= next[i],也就是當目前位置+剩餘步數可以抵達下一個基地台時,將 pos 更新成 next[i],並且將 step -= next[i] – pos。之後要來比對是目前剩餘的步數 step 比較多,還是 MAP[next[i]] 也就是新基地台提供的步數比較多,將多者設定為新的 step。如果無法抵達下一個基地台,則將 For迴圈 Break 掉。
輸出的時候因為可能會有剩餘的步數,所以是輸出 pos + step。