思路
这道题是一道简单的模拟题,按照题目要求走一遍就行了,注意理解题意。
代码
#include <cstdio>
using namespace std;
int candy[10000];
int main()
{
int n, i;
while(scanf("%d", &n)&&n)
{
for(i=1; i<=n; i++) scanf("%d", candy+i);
int count = 0;
while(true)
{
// 判断是否满足条件
for(i=2; i<=n; i++)
if(candy[1]!=candy[i]) break;
if(i>n) break;
// 交换糖果
int temp = candy[n]/2;
for(i=n; i>1; i--)
{
candy[i] /= 2;
candy[i] += (candy[i-1]/2);
if(candy[i]&1) candy[i]++;
}
candy[1] /= 2;
candy[1] += temp;
if(candy[1]&1) candy[1]++;
count++;
}
printf("%d %d\n", count, candy[1]);
}
return 0;
}