/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
// boolean array
boolean [] arr={false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true};
// Finding first occurence of T in the array (arr)
//Brute force : we'll use two loops ....O(N^2) TC....!
//Optimal force : we'll use Binary Search....
int idx=firstOccurence(arr);
System.
out.
println("First occurence of T is on index :"+ idx
); }
public static int firstOccurence(boolean[] arr){
int start=0;
int end=arr.length-1;
int i=-1;
while(start<=end){
int mid = (start+end)/2;
if(arr[mid]==false){
start=mid+1;
}else{
i=mid;
end=mid-1;
}
}
return i;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQkKCQkvLyBib29sZWFuIGFycmF5IAoJCWJvb2xlYW4gW10gYXJyPXtmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlfTsKCQkKCQkvLyBGaW5kaW5nIGZpcnN0IG9jY3VyZW5jZSBvZiBUIGluIHRoZSBhcnJheSAoYXJyKQoJCQoJCS8vQnJ1dGUgZm9yY2UgOiB3ZSdsbCB1c2UgdHdvIGxvb3BzIC4uLi5PKE5eMikgVEMuLi4uIQoJCQoJCS8vT3B0aW1hbCBmb3JjZSA6IHdlJ2xsIHVzZSBCaW5hcnkgU2VhcmNoLi4uLgoJCQoJCWludCBpZHg9Zmlyc3RPY2N1cmVuY2UoYXJyKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIkZpcnN0IG9jY3VyZW5jZSBvZiBUIGlzIG9uIGluZGV4IDoiKyBpZHgpOwoJfQoJCglwdWJsaWMgc3RhdGljIGludCBmaXJzdE9jY3VyZW5jZShib29sZWFuW10gYXJyKXsKCSAgICBpbnQgc3RhcnQ9MDsKCSAgICBpbnQgZW5kPWFyci5sZW5ndGgtMTsKCSAgICBpbnQgaT0tMTsKCSAgICB3aGlsZShzdGFydDw9ZW5kKXsKCSAgICAgICAgaW50IG1pZCA9IChzdGFydCtlbmQpLzI7CgkgICAgICAgIGlmKGFyclttaWRdPT1mYWxzZSl7CgkgICAgICAgICAgICBzdGFydD1taWQrMTsKCSAgICAgICAgfWVsc2V7CgkgICAgICAgICAgICBpPW1pZDsKCSAgICAgICAgICAgIGVuZD1taWQtMTsKCSAgICAgICAgfQoJICAgIH0KCSAgICByZXR1cm4gaTsKCX0KfQ==