典型的递归写法,注意下格式
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define inf 0x3f3f3f3f
using namespace std;
const int N=1e5+100;
const int mi=N/2;
int arr[N];
int l,r;
void build(int p)
{
int v;
cin>>v;
if(v==-1)
return ;
l=min(l,p);
r=max(r,p);
arr[p]+=v;
build(p-1);
build(p+1);
return ;
}
int main()
{
ios::sync_with_stdio(false);
int a,t=1;
while(cin>>a&&a!=-1)
{
l=mi,r=mi;//这里的初始值让我错了两发,需要注意一下
memset(arr,0,sizeof arr);
arr[mi]+=a;
build(mi-1);
build(mi+1);
cout<<"Case "<<t++<<":"<<endl;
cout<<arr[l];
for(int i=l+1;i<=r;i++)
cout<<" "<<arr[i];
cout<<endl;
cout<<endl;
}
return 0;
}