纯粹的模拟,貌似也有规律的,反正我是模拟过的。
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int n;
int stu[1001];
int main(void)
{
while(scanf("%d",&n)!=EOF,n!=0)
{
int ans = 0;
for(int i=1;i<=n;++i)
scanf("%d",stu+i);
bool flag = false;
int i;
for(i=1;i<=n;++i)
if(stu[i]!=stu[1])
break;
if(i>n)
flag = true;
while(!flag)
{
ans++;
for(int i=1;i<=n;++i)
{
stu[i]/=2;
}
int tmp = stu[n];
for(int i=n;i>=2;--i)
{
stu[i] += stu[i-1];
if(stu[i]&1)
stu[i] += 1;
}
stu[1] += tmp;
if(stu[1]&1)
stu[1] += 1;
int i;
for(i=1;i<=n;++i)
if(stu[i]!=stu[1])
break;
if(i>n)
flag = true;
}
cout<<ans<<" "<<stu[1]<<endl;
}
return 0;
}