#include <stdio.h>

int max2(int a, int b) {

    if(a > b) return a;

    else
              return b;
}
//                                  0       9
int divide_et_impera(int arr[], int lo, int hi, int *max) {

     if( lo == hi ) {

        return arr[ lo ];

     } else {

                                  //   0    4         max
         int a = divide_et_impera(arr, lo, (lo+hi)/2, max);

                                  // 5 9
         int b = divide_et_impera(arr, (lo+hi)/2+1, hi, max);

         *max = max2(a,b);
         
         return *max;
     }
}


int main(int argc, char const *argv[]) {

  int max;

  int arr[10] = {0,1,222,3,4,115,6,7,8,19};
  //             0 1   2 3 4   5 6 7 8  9
  //(0+9)/2
                 //max(0,1) = 1
                 //max(222,3) = 222
                 //max(1,222) = 222


  divide_et_impera(arr, 0, 9, &max);

  printf("max = %d\n",max);

  return 0;
}