题目链接如下:
代码如下:
#include <cstdio>
#include <algorithm>
const int maxx = 100;
// #define debug
int t, kase = 0;
int pile[maxx];
void dfs(int loc){
scanf("%d", &t);
if (t != -1){
pile[loc] += t;
dfs(loc - 1);
dfs(loc + 1);
}
}
int main(){
#ifdef debug
freopen("0.txt", "r", stdin);
freopen("1.txt", "w", stdout);
#endif
while (scanf("%d", &t) == 1 && t != -1){
std::fill(pile, pile + maxx, 0);
int loc = maxx / 2;
pile[loc] += t;
dfs(loc - 1);
dfs(loc + 1);
printf("Case %d:\n", ++kase);
int i = 0;
while (!pile[i]) {
++i;
}
for (; i < maxx && pile[i]; ++i){
printf("%d%s", pile[i], i == maxx - 1 || !pile[i + 1] ? "\n\n" : " ");
}
}
#ifdef debug
fclose(stdin);
fclose(stdout);
#endif
return 0;
}