直接模拟
C++ 代码
#include <bits/stdc++.h>
using namespace std;
const int N=110;
int n,a[N],t[N];
int main()
{
ios::sync_with_stdio(false);
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
int ans=0;
while(1)
{
int x=a[0];
bool flag=1;
for(int i=1;i<n;i++)
if(a[i]!=x){flag=0;break;}
if(flag)break; // all the candy number is the same
for(int i=0;i<n;i++)
{
t[i]=a[i]/2;
a[i]/=2;
}
for(int i=0;i<n;i++)
{
a[i]+=t[(i+1)%n];
if(a[i]&1)a[i]++,ans++; // give candy
}
}
printf("%d\n",ans);
return 0;
}