Описание: Меня попросили определить количество шагов, необходимых для поиска 'k' в [a, b], с помощью бинарного поиска. Выходными данными должно быть количество итераций, необходимое для нахождения 'k', представленного 'count'. Меня просят сделать это без встроенной функции.
Проблема: Кажется, что есть ошибка logi c, так как при вводе кода для проверки на Codeforces она отклоняется. Отказ происходит из-за неизвестного мне образца ввода, я не могу понять проблему. Вот код:
#include <iostream>
using namespace std;
int main(){
/*a: interval start, b: interval end, k: number being searched for*/
int a, b, k, count = 0;
cin >> a >> b >> k;
//Binary search variables
int start = a, end = b, mid = -1;
//Binary Search implementation
while (start <= end) {
count++;
mid = (start + end) / 2;
if (mid == k) {
cout << count;
break;
}
else if (mid < k) {
start = mid + 1;
}
else {
end = mid - 1;
}
}
return 0;
}