#include <iostream>
#include <vector>
using namespace std;
class Solution {
public:
char nextGreaterLetter(vector<char>& letters, char target) {
int left = 0, right = letters.size() - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (letters[mid] <= target)
left = mid + 1;
else
right = mid - 1;
}
return (left < letters.size()) ? letters[left] : letters[0];
}
};
int main() {
Solution s;
vector<char> letters1 = {'c', 'f', 'j'};
cout << "Next greater letter is: " << s.nextGreaterLetter(letters1, 'a') << endl;
cout << "Next greater letter is: " << s.nextGreaterLetter(letters1, 'c') << endl;
cout << "Next greater letter is: " << s.nextGreaterLetter(letters1, 'k') << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgU29sdXRpb24gewpwdWJsaWM6CiAgICBjaGFyIG5leHRHcmVhdGVyTGV0dGVyKHZlY3RvcjxjaGFyPiYgbGV0dGVycywgY2hhciB0YXJnZXQpIHsKICAgICAgICBpbnQgbGVmdCA9IDAsIHJpZ2h0ID0gbGV0dGVycy5zaXplKCkgLSAxOwoKICAgICAgICB3aGlsZSAobGVmdCA8PSByaWdodCkgewogICAgICAgICAgICBpbnQgbWlkID0gbGVmdCArIChyaWdodCAtIGxlZnQpIC8gMjsKCiAgICAgICAgICAgIGlmIChsZXR0ZXJzW21pZF0gPD0gdGFyZ2V0KSAKICAgICAgICAgICAgICAgIGxlZnQgPSBtaWQgKyAxOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICByaWdodCA9IG1pZCAtIDE7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gKGxlZnQgPCBsZXR0ZXJzLnNpemUoKSkgPyBsZXR0ZXJzW2xlZnRdIDogbGV0dGVyc1swXTsKICAgIH0KfTsKCmludCBtYWluKCkgewogICAgU29sdXRpb24gczsKICAgIHZlY3RvcjxjaGFyPiBsZXR0ZXJzMSA9IHsnYycsICdmJywgJ2onfTsKCiAgICBjb3V0IDw8ICJOZXh0IGdyZWF0ZXIgbGV0dGVyIGlzOiAiIDw8IHMubmV4dEdyZWF0ZXJMZXR0ZXIobGV0dGVyczEsICdhJykgPDwgZW5kbDsgCiAgICBjb3V0IDw8ICJOZXh0IGdyZWF0ZXIgbGV0dGVyIGlzOiAiIDw8IHMubmV4dEdyZWF0ZXJMZXR0ZXIobGV0dGVyczEsICdjJykgPDwgZW5kbDsgCiAgICBjb3V0IDw8ICJOZXh0IGdyZWF0ZXIgbGV0dGVyIGlzOiAiIDw8IHMubmV4dEdyZWF0ZXJMZXR0ZXIobGV0dGVyczEsICdrJykgPDwgZW5kbDsgCgogICAgcmV0dXJuIDA7Cn0K