/* 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(79, 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 <= numbers.length - 1; 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
); }
System.
out.
println("==l:" + low
+ " h:" + high
+ " m: " + mid
+ " i: " + i
); return rank;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoKICAgIGludCByYW5rID1maW5kTnVtYmVyKDc5LCBuZXcgaW50W117MiwgNCwgNywgMTAsIDExLCA0NSwgNTAsIDU5LCA2MCwgNjYsIDY5LCA3MCwgNzl9KTsKICAgIFN5c3RlbS5vdXQucHJpbnRsbigiWW91ciBudW1iZXIncyBpbmRleCBpcyAiICsgcmFuayk7Cgp9CgpwdWJsaWMgc3RhdGljIGludCBmaW5kTnVtYmVyKGludCBrZXksIGludC4uLiBudW1iZXJzKSB7CiAgICBpbnQgbG93ID0gMDsKICAgIGludCBoaWdoID0gbnVtYmVycy5sZW5ndGggLSAxOwogICAgaW50IG1pZCA9IChsb3cgKyBoaWdoKSAvIDI7CiAgICBpbnQgcmFuayA9IC0xOwogICAgaW50IGkgPSAwOwogICAgZm9yIChpID0gbG93OyBpIDw9IG51bWJlcnMubGVuZ3RoIC0gMTsgaSsrKSB7CiAgICAJCiAgICAgICAgaWYgKGtleSA8IG51bWJlcnNbbWlkXSkgewogICAgICAgICAgICBoaWdoID0gbWlkOwogICAgICAgICAgICBtaWQgPSAobG93ICsgaGlnaCkgLyAyOwogICAgICAgIH0gZWxzZSBpZiAoa2V5ID4gbnVtYmVyc1ttaWRdKSB7CiAgICAgICAgICAgIGxvdyA9IG1pZDsKICAgICAgICAgICAgbWlkID0gKGxvdyArIGhpZ2gpIC8gMjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByYW5rID0gbWlkOwogICAgICAgICAgICByZXR1cm4gcmFuazsKICAgICAgICB9CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJsOiIgKyBsb3cgKyAiIGg6IiArIGhpZ2ggKyAiIG06ICIgKyBtaWQrICIgaTogIiArIGkpOwogICAgfQogICAgU3lzdGVtLm91dC5wcmludGxuKCI9PWw6IiArIGxvdyArICIgaDoiICsgaGlnaCArICIgbTogIiArIG1pZCArICIgaTogIiArIGkpOwogICAgcmV0dXJuIHJhbms7Cn0KfQ==