#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==