UVa 699 The Falling Leaves

 1  #include <stdio.h>
 2  #include <stdlib.h>
 3  #include <iostream>
 4  #include <string.h>
 5  #include <algorithm>
 6  using namespace std;
 7  int leaf[100]={0};
 8  bool read(int mid)
 9  {
10      int tmp;
11      cin>>tmp;
12      if(tmp==-1) return false;
13      else
14      {
15          leaf[mid]+=tmp;
16          read(mid-1);
17          read(mid+1);
18      }
19      return true;
20  }
21  int main()
22  {
23      int cas=1;
24      while(1)
25      {
26           memset(leaf,0,sizeof(leaf));
27           int mid=50;
28           if(read(mid)==false) break;
29           else
30           {
31               int left=0,right=0;
32               for(int i=0;i<=mid;i++)
33               {
34                   if(leaf[i]!=0) {left=i;break;}
35               }
36               for(int i=99;i>=mid;i--)
37               {
38                   if(leaf[i]!=0) {right=i;break;}
39               }
40               printf("Case %d:\n",cas++);
41               for(int i=left;i<=right;i++)
42               {
43                   printf("%d",leaf[i]);
44                   if(i!=right) printf(" ");
45               }
46               printf("\n\n");
47           }
48      }
49      return 0;

50  }

留言

這個網誌中的熱門文章

Things a Little Bird Told Me: Confessions of the Creative Mind

UVa 12970 Alcoholic Pilots

UVa 483 Word Scramble