發布時間: Feb. 8, 2021, 12:10 a.m. 最後更新時間: Sept. 14, 2023, 10:59 p.m. 時間限制: 1000ms 記憶體限制: 128M
有人在抱怨題目沒有圖片欸,那我先放幾張之後再寫題目敘述owob
*考慮到原本放的圖片是遊戲內CG,為避免造成版權上問題已將圖片移除*
隨著8月最後一週的到來,能繼續待在鳥白島的日子也已經所剩無幾,於是你決定請大家吃白羽最喜歡的西瓜冰棒。
你打算請$N(1\leq N\leq 100)$個人圍成一圈吃冰,但當你一把冰發放下去,你就發現大家拿到的數量差很多!有的人拿太多,有的人則拿不到多少,所以你決定要把每個人拿到的冰棒數量調整成平均值。
但因為大家都已經坐下來了,再站起來很累,所以每個人都只會把冰拿給左右兩側的人。這種傳冰棒的模式理論上問題可以把問題解決,但因為我很好奇最少得要交換幾次(支)冰,所以會問你這個問題
給定一個長度為$N(1\leq N\leq 100)$的環狀排列$a$,每次可以花費$k$進行下列動作:
1. $a_i$改成$a_i-k$
2. $a_{i+1}$改成$a_{i+1}+k_1$
3. $a_{i-1}$改成$a_{i-1}+k_2$
其中$k_1+k_2=k$,試求將所有$a_i$改成同一個值的最少花費
第一行有一個整數$N(1\leq N\leq 100)$表示人數
第二行有$N$個整數,第$i$個整數表示第$i$個人一開始的冰棒數量,注意是環狀排列,所以第幾個人沒差,重點是相鄰的位子
輸出一個整數表示最少交換次數,保證答案不超出$\text{int}$範圍
5 14 16 4 17 9
11
5 6 12 9 7 1
13