这里只给出了单例的代码,如需符合多例,读者可自行修改!
#include <stdio.h>
int beg,end;
int data[10000];
void build(int pos){
int v;
scanf("%d",&v);
if(v == -1)return;
data[pos] += v;
if(pos < beg) beg = pos;
if(pos > end) end = pos;
build(pos-1);
build(pos+1);
}
int main(){
beg = end = 5000;
build(5000);
int i;
for(i=beg;i<=end;i++){
if(i != beg)printf(" ");
printf("%d",data[i]);
}
printf("\n");
return 0;
}