#include <stdio.h> #include <stdint.h> int binary_search(uint8_t *arr, uint8_t n, uint8_t key) { // Your logic here int start = 0, end = n - 1, mid = 0; bool found = 0; while(start <= end) { mid = start + (end - start)/2; if(arr[mid] == key) { found = 1; break; } if(arr[mid] < key) start = mid + 1; else end = mid - 1; } return (found == 1 ? mid : -1); } int main() { uint8_t n, key; scanf("%hhu", &n); uint8_t arr[100]; for (uint8_t i = 0; i < n; i++) { scanf("%hhu", &arr[i]); } scanf("%hhu", &key); int index = binary_search(arr, n, key); printf("%d", index); return 0; }
Test Cases
Test Results
Input
6 5 10 15 20 25 30 20
Expected Output
3