#include<stdio.h>
char* Divide(int arr[],int l,int r,int key)
{
int m=(l+r)/2;
if(l==r)
{
if(key==arr[m])
return "Found";
else
return "Not Found";
}
else
{
if(key==arr[m])
return "Found";
else if(key>arr[m])
return Divide(arr,m+1,r,key);
else
return Divide(arr,l,m,key);
}
}
int main()
{
int arr[]={1,2,3,4,5,6,7,8};
int n=sizeof(arr)/sizeof(arr[0]);
char* result=Divide(arr,0,n-1,10);
printf("%s\n",result);
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KY2hhciogRGl2aWRlKGludCBhcnJbXSxpbnQgbCxpbnQgcixpbnQga2V5KQp7CiAgICBpbnQgbT0obCtyKS8yOwogICAgaWYobD09cikKICAgIHsKICAgICAgICBpZihrZXk9PWFyclttXSkKICAgICAgICAgICAgcmV0dXJuICJGb3VuZCI7CiAgICAgICAgZWxzZQogICAgICAgICAgICByZXR1cm4gIk5vdCBGb3VuZCI7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgaWYoa2V5PT1hcnJbbV0pCiAgICAgICAgICAgIHJldHVybiAiRm91bmQiOwogICAgICAgIGVsc2UgaWYoa2V5PmFyclttXSkKICAgICAgICAgICAgcmV0dXJuIERpdmlkZShhcnIsbSsxLHIsa2V5KTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIHJldHVybiBEaXZpZGUoYXJyLGwsbSxrZXkpOwogICAgfQp9CmludCBtYWluKCkKewogICAgaW50IGFycltdPXsxLDIsMyw0LDUsNiw3LDh9OwogICAgaW50IG49c2l6ZW9mKGFycikvc2l6ZW9mKGFyclswXSk7CiAgICBjaGFyKiByZXN1bHQ9RGl2aWRlKGFyciwwLG4tMSwxMCk7CiAgICBwcmludGYoIiVzXG4iLHJlc3VsdCk7CiAgICByZXR1cm4gMDsKfQ==