http://acm.hit.edu.cn/hoj/problem/view?id=2785
有n个碗 每个碗里面有mi个弹子
将第i个碗里的一个弹子移出 就在i之前的每一个碗移入一个弹子
移动第一个碗时 别的碗不移入弹子
从最后一个碗开始移
#include <stdio.h>
int main()
{
int n, i, j;
long long step, mi[64];
while (scanf("%d", &n) && n)
{
step = 0;
for (i = 0; i < n; i++)
{
scanf("%lld", &mi[i]);
}
for (i--; i >= 0; i--)
{
step += mi[i];
for (j = 0; j < i; j++)
mi[j] += mi[i];
}
printf("%lld\n", step);
}
return 0;
}