//循环队列问题
#include<iostream>
#include<vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> candies(n);
// 输入初始糖果数
for(int i = 0; i < n; i++) {
cin >> candies[i];
}
int teacherGiven = 0; // 老师补发的糖果总数
while(true) {
// 检查是否所有小朋友糖果数相同
bool allSame = true;
for(int i = 1; i < n; i++) {
if(candies[i] != candies[0]) {
allSame = false;
break;
}
}
if(allSame) break;
// 第一阶段:分糖(需要临时保存)
vector<int> temp = candies;
// 每个小朋友分一半给左手边的孩子
for(int i = 0; i < n; i++) {
int give = temp[i] / 2; // 要给出的糖果数
// 给左边的小朋友(注意循环)
int left = (i - 1 + n) % n;//循环关键
candies[left] += give;
candies[i] -= give;
}
// 第二阶段:老师补糖
for(int i = 0; i < n; i++) {
if(candies[i] % 2 != 0) { // 如果是奇数
candies[i]++; // 补1个糖果
teacherGiven++; // 计数增加
}
}
}
cout << teacherGiven << endl;
return 0;
}