标签:
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 4448    Accepted Submission(s): 
2718
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stack>
#include<queue>
#include<map> 
#include<vector>
#define MAX 100010
#define LL long long
#define INF 0xfffffff
#define fab(x) (x)>0?(x):(-x)
#define mem(x) memset(x,0,sizeof(x))
#define PI acos(-1)
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int n,m,j,i,t;
    int s[MAX],s1[MAX];
	while(scanf("%d",&n),n)
	{
		for(i=1;i<=n;i++)
		{
			scanf("%d",&s[i]);
			s1[i]=s[i];
		}
		int flag=1;
		int ans=0;
		int ant=0;
		while(flag)
		{
			ans++;
			
			s[1]=s1[n]/2+s1[1]/2;
			if(s[1]&1)
			    s[1]+=1;
			    
			//s1[1]=s[1];
			
			for(i=2;i<=n;i++)
			{
				s[i]=s1[i-1]/2+s1[i]/2;
				if(s[i]&1)
				    s[i]+=1;
			    //s1[i]=s[i]; 
			}
			for(i=1;i<=n;i++)
			    s1[i]=s[i];
//			for(i=1;i<=n;i++)
//			{
//				printf("%d# ",s[i]);
//			}
//			printf("\n");
			
			int k=0;
			for(i=1;i<n;i++)
			{
				if(s[i]==s[i+1])
					k++;
				else
				    break;
			}
			for(i=1;i<=n;i++)
			printf("%d ",s[i]);
			printf("\n");
			if(s[1]==s[n])
			    k++;
			if(k==n)
			{
				flag=0;
				ant=s[1];
			} 
		}
		printf("%d %d\n",ans,ant);
	}	
	return 0;
}
标签:
原文地址:http://www.cnblogs.com/tonghao/p/5030638.html