Uva 699The Falling Leaves

时间:2021-10-19 06:24:13

0.唔。这道题 首先要明确根节点在哪儿 初始化成pos=maxn/2;

1.因为是先序的输入方法,所以这个建树的方法很重要

 void build(int p)
 {
     int v;
     cin>>v;

     )
     {
         sum[p]+=v;
         build(p-),build(p+);
     }
 }
 #include  <iostream>
 #include <cstring>
 using namespace std;
  ;
 int sum[maxn];
 int k;
 void build(int p)
 {
     int v;
     cin>>v;

     )
     {
         sum[p]+=v;
         build(p-),build(p+);
     }

 }
 void output()
 {
     cout<<"Case "<<++k<<":"<<endl;
     ;
     ) p++;

     cout<<sum[p++];

     )
         cout<<" "<<sum[p++];
     cout<<endl<<endl;
 }
 int main()
 {
     int root;
     k=;
     while(cin>>root)
     {
         memset(sum,,sizeof(sum));
         ) break;
         ;
         sum[pos]=root;

         build(pos-);
         build(pos+);

         output();

     }
     ;
 }