- #include <iostream> 
- #include <vector> 
- using namespace std; 
-   
- int searchHelper(const int arr[], int start, int stop, int key) 
- { 
- 	if(start == stop)	return -1; 
- 	if(arr[start] == key) return start; 
- 	return searchHelper(arr, start + 1, stop, key); 
- } 
-   
- int search(const int arr[], int size, int key) 
- { 
- 	return searchHelper(arr, 0, size, key); 
- } 
-   
- int search(vector<int> const& vec, int key) 
- { 
- 	return searchHelper(vec.data(), 0, (int)vec.size(), key); 
- } 
-   
- int main() { 
- 	int arr[] = {3,10,2,5,6,1}; 
-   
- 	cout << search(arr, 6, 10) << endl; 
- 	cout << search(arr, 6, 20) << endl; 
-   
- 	return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IHNlYXJjaEhlbHBlcihjb25zdCBpbnQgYXJyW10sIGludCBzdGFydCwgaW50IHN0b3AsIGludCBrZXkpCnsKCWlmKHN0YXJ0ID09IHN0b3ApCXJldHVybiAtMTsKCWlmKGFycltzdGFydF0gPT0ga2V5KSByZXR1cm4gc3RhcnQ7CglyZXR1cm4gc2VhcmNoSGVscGVyKGFyciwgc3RhcnQgKyAxLCBzdG9wLCBrZXkpOwp9CgppbnQgc2VhcmNoKGNvbnN0IGludCBhcnJbXSwgaW50IHNpemUsIGludCBrZXkpCnsKCXJldHVybiBzZWFyY2hIZWxwZXIoYXJyLCAwLCBzaXplLCBrZXkpOwp9CgppbnQgc2VhcmNoKHZlY3RvcjxpbnQ+IGNvbnN0JiB2ZWMsIGludCBrZXkpCnsKCXJldHVybiBzZWFyY2hIZWxwZXIodmVjLmRhdGEoKSwgMCwgKGludCl2ZWMuc2l6ZSgpLCBrZXkpOwp9CgppbnQgbWFpbigpIHsKCWludCBhcnJbXSA9IHszLDEwLDIsNSw2LDF9OwoKCWNvdXQgPDwgc2VhcmNoKGFyciwgNiwgMTApIDw8IGVuZGw7Cgljb3V0IDw8IHNlYXJjaChhcnIsIDYsIDIwKSA8PCBlbmRsOwoJCglyZXR1cm4gMDsKfQ==