#include <stdio.h>
#include <stdlib.h>

int test(int x, int t[], int i, int j)
{
  while ( i < j ){
    if ( t[i] == x ) return 1;
    i++;
  }
  return 0;
}
int maj( int t[], int i, int j)
{ int c, m;
  if ( j == i ) return t[i];
  m = ( i + j) /2;
  c = maj( t, i, m );
  if ( test(c, t, m + 1, j) ) return c;
  return maj( t, m+1, j ); 
}

int main(int argc, char*argv[] )
{ int *t, i , n;
  n = atoi( argv[1] );
  t = ( int*) calloc( n,  sizeof(int) );
  for( i = 0; i < n; i++)
    t[i] = random() % 3;
  printf("\n");
  for(i=0; i < n; i++)
    printf(" %d", t[i] );
  printf("\nmaj=%d\n", maj(t, 0, n-1) );
  return 0;
}
