#include<stdio.h>
#include<time.h>
#define max 1005
int a[max];
int istop(int*s,int n)
{
int ok=1;
for(int i=1;i<n;i++)
{
if(s[0]!=s[i])ok=0;//只要有一个糖果数不等就为0
if(!ok)break;
}
/*for(int i=0;i<n;i++)
printf("%d ",s[i]);
printf("\n");*/
if(ok)return 1;
else return 0;
}
int main()
{
int n;//学生人数
int whistle;
while(scanf("%d",&n)==1&&n)
{
int tem[n+10];//需要一个中间数组来保存a数组的值!
for(int i=0;i<n;i++)
{//输入每个学生的糖果数
scanf("%d",a+i);
tem[i]=a[i];
}
whistle=0;
while(!istop(a,n))
{
whistle++;//代表口哨响了
//开始分糖果
//tem[0]=a[0];//改变a[0]的值之前先把它的值存起来
tem[0]+=(a[n-1]-a[0])/2;
for(int i=1;i<n;i++)
{
tem[i]+=(a[i-1]-a[i])/2;
}
//分完一次后检查谁的糖果是奇数个
for(int j=0;j<n;j++)
{
if(tem[j]%2!=0)
tem[j]=a[j]=tem[j]+1;//注意,要同时改变tem数组和a数组的值!!!
else
a[j]=tem[j];
}
}
//退出循环说明糖果数相等了
printf("%d %d\n",whistle,a[0]);
/* for(int i=0;i<n;i++)
printf("%d ",a[i]);
*/
}
return 0;
}
//下面是Java版的代码
import java.util.Scanner;
public class Main{
//储存糖果的数组
private static int[]a=new int[1005];
private static int[]tem;//储存糖果数目的另一个数组
private static int n;//参加游戏的同学的人数
public static boolean istop(int[]a,int n)
{
int ok=1;
for(int i=1;i<n;i++)
{
if(a[0]!=a[i])ok=0;
if(ok==0)break;
}
if(ok==1)return true;
else return false;
}
public static void main(String[]args){
Scanner cin=new Scanner(System.in);
int whistle=0;
while(cin.hasNext()){
whistle=0;//注意,每循环一次都要把whistle置零
n=cin.nextInt();
if(n==0)break;
// const int N=n;
tem=new int[n+10];
//tem[0]+=(a[n-1]-a[0])/2;
for(int i=0;i<n;i++)
{tem[i]=a[i]=cin.nextInt();}
while(!istop(a,n))//n必须定义为类的静态属性成员才能在静态方法中使用
{
whistle++;
tem[0]+=(a[n-1]-a[0])/2;
for(int i=1;i<n;i++)
{
tem[i]+=(a[i-1]-a[i])/2;
}
for(int j=0;j<n;j++)
{
if(tem[j]%2!=0)
a[j]=tem[j]=tem[j]+1;
else
a[j]=tem[j];
}
}
System.out.println(whistle+" "+a[0]);