思路:就是一道普通的模拟题,但是有以下几点需要注意。
1. 初始时可能有奇数,但是不补充。只有游戏开始以后才补充
2. 如果是奇数,给别人应该是a[i]/2, 留个自己的应该是a[i] - a[i]/2
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+7;
int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
int a[maxn];
int new_a[maxn];
int n;
while (scanf("%d",&n)!=EOF)
{
if(n==0) break;
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
// if(a[i]%2) a[i]+=1;
new_a[i] = a[i];
}
int ans=0;
while(true)
{
bool flag=0;
for(int i=1;i<n;i++)
{
if(a[i]!=a[0]){
flag=1;
break;
}
}
if(flag==0) break;
ans++;
for(int i=0;i<n;i++)
{
new_a[i] = (a[(i-1+n)%n]/2 + (a[i]-a[i]/2));
if(new_a[i]%2) new_a[i]+=1;
}
for(int i=0;i<n;i++)
{
a[i] = new_a[i];
}
}
cout<<ans<<" "<<new_a[0]<<endl;
}
return 0;
}