眩しさだけは、忘れなかった。

發布時間: 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

image.png

範測一的一種作法

math

竹中軟研35th第二次競賽(教學儲幹加分賽)