/* 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
{
public static void main
(String[] args
) {
int rank =findNumber(8, new int[]{2, 4, 7, 10, 11, 45, 50, 59, 60, 66, 69, 70, 79});
System.
out.
println("Your number's index is " + rank
);
}
public static int findNumber(int key, int... numbers) {
int low = 0;
int high = numbers.length - 1;
int mid = (low + high) / 2;
int rank = -1;
int i = 0;
for (i = low; i <= high; i++) {
if (key < numbers[mid]) {
high = mid;
mid = (low + high) / 2;
} else if (key > numbers[mid]) {
low = mid;
mid = (low + high) / 2;
} else {
rank = mid;
return rank;
}
System.
out.
println("l:" + low
+ " h:" + high
+ " m: " + mid
+ " i: " + i
); }
return rank;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoKICAgIGludCByYW5rID1maW5kTnVtYmVyKDgsIG5ldyBpbnRbXXsyLCA0LCA3LCAxMCwgMTEsIDQ1LCA1MCwgNTksIDYwLCA2NiwgNjksIDcwLCA3OX0pOwogICAgU3lzdGVtLm91dC5wcmludGxuKCJZb3VyIG51bWJlcidzIGluZGV4IGlzICIgKyByYW5rKTsKCn0KCnB1YmxpYyBzdGF0aWMgaW50IGZpbmROdW1iZXIoaW50IGtleSwgaW50Li4uIG51bWJlcnMpIHsKICAgIGludCBsb3cgPSAwOwogICAgaW50IGhpZ2ggPSBudW1iZXJzLmxlbmd0aCAtIDE7CiAgICBpbnQgbWlkID0gKGxvdyArIGhpZ2gpIC8gMjsKICAgIGludCByYW5rID0gLTE7CiAgICBpbnQgaSA9IDA7CiAgICBmb3IgKGkgPSBsb3c7IGkgPD0gaGlnaDsgaSsrKSB7CiAgICAJCiAgICAgICAgaWYgKGtleSA8IG51bWJlcnNbbWlkXSkgewogICAgICAgICAgICBoaWdoID0gbWlkOwogICAgICAgICAgICBtaWQgPSAobG93ICsgaGlnaCkgLyAyOwogICAgICAgIH0gZWxzZSBpZiAoa2V5ID4gbnVtYmVyc1ttaWRdKSB7CiAgICAgICAgICAgIGxvdyA9IG1pZDsKICAgICAgICAgICAgbWlkID0gKGxvdyArIGhpZ2gpIC8gMjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByYW5rID0gbWlkOwogICAgICAgICAgICByZXR1cm4gcmFuazsKICAgICAgICB9CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJsOiIgKyBsb3cgKyAiIGg6IiArIGhpZ2ggKyAiIG06ICIgKyBtaWQrICIgaTogIiArIGkpOwogICAgfQogICAgcmV0dXJuIHJhbms7Cn0KfQ==