將前綴和存到陣列中之後跑For迴圈判斷每一個數字減掉前K個數字的最小值有沒有比目前最大值 (答案) 還要大,可以使用線段樹來紀錄每一個區段的最小值來防止超時。另外,在進行線段樹搜尋的時候也可以在函式中判斷目前For迴圈中跑到的數字減掉目前節點的值是否有大於答案,如果小於等於的話可以直接return函式節省時間。計算前綴和及計算答案的時候可以使用Long Long Int來防止超過範圍。
範例程式碼