public class Tournament {
public int solution1(int n, int a, int b) {
int round = 0;
while (a != b) {
a = a / 2 + a % 2;
b = b / 2 + b % 2;
round++;
}
return round;
}
public int solution(int n, int a, int b) {
int j;
for (j = 1; j <= Math.sqrt(n); j++) {
if (n == Math.pow(2, j)) {
break;
}
}
int i, before = 1, after = n, mid = n / 2;
for (i = j; i >= 1; i--) {
if (a <= mid && b <= mid) {
after = mid;
} else if (a > mid && b > mid) {
before = mid + 1;
} else {
break;
}
mid = (before + after) / 2;
}
return i;
}
public static void main(String[] args) {
Tournament s = new Tournament();
System.out.println(s.solution(8, 4, 7));
System.out.println(s.solution(16, 9, 16));
System.out.println(s.solution(16, 11, 12));
}
}