#include <stdio.h>
#include <stdlib.h>
// 執行一輪分發
void distribute(int *a, int n)
{
int i;
int last = a[n - 1]; // 開始前,最後一個人手中的數量
// 第1~倒數第2個人
for (i = 0; i < n - 1; i++)
{
a[i] /= 2;
if (i == 0)
a[n - 1] += a[i]; // 第一個人分一半給最後一個人
else
a[i - 1] += a[i]; // 其他人分一半給前一個人
}
// 最後一個人需要特殊處理
// 他只拿出最開始的一半給倒數第二個人
// 而不是現在手中的一半(現在第一個人已經給了他一部分,不能把這部分算進去)
last /= 2;
a[n - 1] -= last;
a[n - 2] += last;
}
int resupply(int *arr, int n)
{
int num = 0;
int i;
for (i = 0; i < n; i++)
{
if (arr[i] % 2 == 1)
{
arr[i]++;
num++;
}
}
return num;
}
int equal(int *arr, int n)
{
int i;
for (i = 1; i < n; i++)
{
if (arr[i] != arr[0])
return 0;
}
return 1;
}
int main(void)
{
int i, n, *arr;
int count = 0;
scanf("%d", &n);
arr = (int *)malloc(n * sizeof(int));
for (i = 0; i < n; i++)
scanf("%d", arr + i);
do
{
distribute(arr, n);
count += resupply(arr, n);
} while (!equal(arr, n));
free(arr);
printf("%d\n", count);
return 0;
}