int bsearch(const int *arr, int n, int key) { int lo = 0, hi = n - 1; while (lo <= hi) { int mid = (lo + hi) / 2; if (arr[mid] == key) return mid; if (arr[mid] < key) lo = mid + 1; else hi = mid - 1; } return -1; }