880080 - 移动石子

通过次数

5

提交次数

7

时间限制 : 1 秒
内存限制 : 128 MB

将N(1<N<50)堆石子围成一个圆圈,已知每堆石子的数量,且石子的总数量能被N整除。请按照如下要求移动石子,使得N堆石子的数量变为相同。 要求:可以从每堆石子中拿取石子移动到它左右相邻的两堆石子堆中。 计算出要使得N堆石子的数量变为相同,至少需要移动多少颗石子。 例如:N = 3,3堆石子顺时针方向的数量依次为2、6、7。最少需要移动3颗石子,N堆石子的数量变为相同,每堆5颗。 https://img-blog.csdnimg.cn/direct/0120cc00cf334955a9dcca916f2f172b.png 第1次从第一堆石子中拿1颗移动到第一堆的石子中,此时3堆石子的数量依次为3、5、7; 第2次从第三堆石子中拿2颗移动到第一堆的石子中,此时3堆石子的数量依次为5、5、5。

输入

第一行输入一个正整数N(1<N<50),表示石子的堆数 第二行输入N个正整数(1<正整数<100),表示顺时针方向每堆石子的原始数量,正整数之间以一个空格隔开

输出

输出一个整数,表示要使N堆石子的数量变为相同,最少移动的石子数量,如果原始N堆石子数量相同,则输出0

样例

输入

3
2 6 7

输出

3

输入

10
2 13 15 9 11 12 1 16 17 14

输出

29

输入

25
17 51 66 92 89 57 86 13 87 42 92 9 75 23 97 29 75 93 63 20 72 77 40 51 84

输出

486