#include <stdio.h>
#define n 10
int occ(int *p,int dim,int X);
int main() {
int v[n]={4,7,8,0,2,12,4,2,63,10}; //it is only an example
int X=0;
int ok;
ok=occ(v,n,X);
if(ok){
printf("\n%d\nFound!",X
); //check if the recursive function works properly }
return 0;
}
int occ(int *p,int dim,int X){
int pivot,a=0,b=0;
pivot=(dim)/2;
if(dim==0){
return 0;
}
if(*(p+pivot)==X)
return 1;
if (pivot != 0)
{
a=occ(p,pivot,X);
b=occ(p+pivot,dim-pivot,X);
}
if(a+b>=1)
return 1;
else{
return 0;
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIG4gMTAKCmludCBvY2MoaW50ICpwLGludCBkaW0saW50IFgpOwoKaW50IG1haW4oKSB7CiAgICBpbnQgdltuXT17NCw3LDgsMCwyLDEyLDQsMiw2MywxMH07IC8vaXQgaXMgb25seSBhbiBleGFtcGxlCiAgICBpbnQgWD0wOwogICAgaW50IG9rOwogICAgb2s9b2NjKHYsbixYKTsKICAgIGlmKG9rKXsKICAgICAgICBwcmludGYoIlxuJWRcbkZvdW5kISIsWCk7IC8vY2hlY2sgaWYgdGhlIHJlY3Vyc2l2ZSBmdW5jdGlvbiB3b3JrcyBwcm9wZXJseQogICAgfQogICAgcmV0dXJuIDA7Cn0KCmludCBvY2MoaW50ICpwLGludCBkaW0saW50IFgpewoKICBpbnQgcGl2b3QsYT0wLGI9MDsKICBwaXZvdD0oZGltKS8yOwogIGlmKGRpbT09MCl7CiAgICAgIHJldHVybiAwOwogIH0KCiAgaWYoKihwK3Bpdm90KT09WCkKICAgICAgcmV0dXJuIDE7CgogIGlmIChwaXZvdCAhPSAwKQogIHsKICAgIGE9b2NjKHAscGl2b3QsWCk7CiAgICBiPW9jYyhwK3Bpdm90LGRpbS1waXZvdCxYKTsKICB9CgogIGlmKGErYj49MSkKICAgICAgcmV0dXJuIDE7CiAgZWxzZXsKICAgICAgcmV0dXJuIDA7CiAgfQp9Cgo=