http://acm.hdu.edu.cn/showproblem.php?pid=1034 整体来说 是水题 但是自己的英文不好导致 失误
//之前是题意理解错误 以为是循环给 并不是 先 1给2 再2 给3
//后来才知道是一次 性 老师是吹一次给一次 。。
# include <stdio.h>
int fun(int temp[],int n)
{
int i;
for(i = 0; i < n;i ++)
if(temp[i]%2==1)
temp[i] ++;
for(i = 0; i < n; i ++)
if(temp[i] != temp[(i+1+n)%n])
return 0;
return 1;
}
int main()
{
int n,i,j,flag = 0,count = 0,ans = 0,num = 0;
int data[100000] ,data1[100000];
while (scanf("%d",&n),n)
{
for(i = 0; i < n;i ++)
scanf("%d",&data[i]);
flag = 0;count = 0,num=0;
while(fun(data,n)==0)
{
for(ans = 0,i = 0; i < n;i++)
{
data1[i] = data[i] / 2;
data[i]/=2;
}
for(ans = 0,i = 0; i < n;i++)
{
data[i] += data1[(i-1+n)%n];
}count ++;
}
printf("%d %d\n",count,data[0]);
}
return 0;
}
posted on 2010-04-11 22:35
付翔 阅读(346)
评论(0) 编辑 收藏 引用