/* File: evensum.c
   A simple recursive function to compute the
   sum of the elements of an array.
*/

#include <stdio.h>

int EvenSum (int A[], int low, int high) {
   int part1, part2, mid ; 
   
   if (high < low) return 1 ;
   if (low == high) return (1 - A[low] % 2) ;

   mid = (low + high) / 2 ;
   part1 = EvenSum(A, low, mid) ;
   part2 = EvenSum(A, mid+1, high) ;

   if (part1 == 1 && part2 == 1) return 1 ;
   if (part1 == 0 && part2 == 0) return 1 ;

   return 0 ;
}

main(){
  int A[5] = {1, 4, 9, 3, 2} ;
  int B[7] = {1, 2, 3, 4, 5, 6, 7} ;
  int s ;

  s = EvenSum(A, 0, 4) ;
  printf("EvenSum(A, 0, 4) returned %d\n", s) ;

  s = EvenSum(B, 0, 6) ;
  printf("EvenSum(B, 0, 6) returned %d\n", s) ;
}

