LARA

class BinarySearch{
    public static void main(String[] a){
	System.out.println(new BS().Start(20));
    }
}
// This class contains an array of integers and
// methods to initialize, print and search the array
// using Binary Search
 
class BS{
    int[] number ;
    int size ;
 
    // Invoke methods to initialize, print and search
    // for elements on the array
    public int Start(int sz){
	int aux01 ;
	int aux02 ;
	aux01 = this.Init(sz);
	aux02 = this.Print();
	if (this.Search(8)) System.out.println(1) ;
	else System.out.println(0) ;
	if (this.Search(19)) System.out.println(1) ;
	else System.out.println(0) ;
	if (this.Search(20)) System.out.println(1) ;
	else System.out.println(0) ;
	if (this.Search(21)) System.out.println(1) ;
	else System.out.println(0) ;
	if (this.Search(37)) System.out.println(1) ;
	else System.out.println(0) ;
	if (this.Search(38)) System.out.println(1) ;
	else System.out.println(0) ;
	if (this.Search(39)) System.out.println(1) ;
	else System.out.println(0) ;
	if (this.Search(50)) System.out.println(1) ;
	else System.out.println(0) ;
 
	return 999 ;
    }
 
 
    // Search for a specific value (num) using
    // binary search
    public boolean Search(int num){
	boolean bs01 ;
	int right ;
	int left ;
	boolean var_cont ;
	int medium ;
	int aux01 ;
	int nt ;
 
	aux01 = 0 ;
	bs01 = false ;
	right = number.length ;
	right = right - 1 ;
	left = 0 ;
	var_cont = true ;
	while (var_cont){
	    medium = left + right ;
	    medium = this.Div(medium);
	    aux01 = number[medium] ;
	    if (num < aux01) right = medium - 1 ;
	    else left = medium + 1 ;
	    if (this.Compare(aux01,num)) var_cont = false ;
	    else var_cont = true ;
	    if (right < left) var_cont = false ;
	    else nt = 0 ;
	}
 
	if (this.Compare(aux01,num)) bs01 = true ;
	else bs01 = false ;
	return bs01 ;
    }
 
    // This method computes and returns the
    // integer division of a number (num) by 2
    public int Div(int num){
	int count01 ;
	int count02 ;
	int aux03 ;
 
	count01 = 0 ;
	count02 = 0 ;
	aux03 = num - 1 ;
	while (count02 < aux03) {
	    count01 = count01 + 1 ;
	    count02 = count02 + 2 ;
	}
	return count01 ;	
    }
 
 
    // This method compares two integers and
    // returns true if they are equal and false
    // otherwise
    public boolean Compare(int num1 , int num2){
	boolean retval ;
	int aux02 ;
 
	retval = false ;
	aux02 = num2 + 1 ;
	if (num1 < num2) retval = false ;
	else if (!(num1 < aux02)) retval = false ;
	else retval = true ;
	return retval ;
    }
 
    // Print the integer array
    public int Print(){
	int j ;
 
	j = 1 ;
	while (j < (size)) {
	    System.out.println(number[j]);
	    j = j + 1 ;
	}
	System.out.println(99999);
	return 0 ;
    }
 
 
    // Initialize the integer array
    public int Init(int sz){
	int j ;
	int k ;
	int aux02 ;
	int aux01 ;
 
	size = sz ;
	number = new int[sz] ;
 
	j = 1 ;
	k = size + 1 ;
	while (j < (size)) {
	    aux01 = 2 * j ;
	    aux02 = k - 3 ;
	    number[j] = aux01 + aux02 ;
	    j = j + 1 ;
	    k = k - 1 ;
	}
	return 0 ;	
    }
 
}