#include <algorithm>
#include <iostream>
bool cstring_less(const char (&lhs)[4], const char (&rhs)[4])
{
return std::lexicographical_compare(std::begin(lhs), std::end(lhs), std::begin(rhs), std::end(rhs));
}
int main(int, char**)
{
const char cstrings[][4] = {"AAA", "AAB", "ABA", "CLL", "CLZ"};
const char lookFor[][4] = {"BBB", "ABA", "CLS"};
for (const auto& s : lookFor)
{
if (std::binary_search(std::begin(cstrings), std::end(cstrings), s, cstring_less)) {
std::cout << s << " Found.\n";
}
}
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKCmJvb2wgY3N0cmluZ19sZXNzKGNvbnN0IGNoYXIgKCZsaHMpWzRdLCBjb25zdCBjaGFyICgmcmhzKVs0XSkKewogICAgcmV0dXJuIHN0ZDo6bGV4aWNvZ3JhcGhpY2FsX2NvbXBhcmUoc3RkOjpiZWdpbihsaHMpLCBzdGQ6OmVuZChsaHMpLCBzdGQ6OmJlZ2luKHJocyksIHN0ZDo6ZW5kKHJocykpOwp9CgppbnQgbWFpbihpbnQsIGNoYXIqKikKewogICAgY29uc3QgY2hhciBjc3RyaW5nc1tdWzRdID0geyJBQUEiLCAiQUFCIiwgIkFCQSIsICJDTEwiLCAiQ0xaIn07CiAgICBjb25zdCBjaGFyIGxvb2tGb3JbXVs0XSA9IHsiQkJCIiwgIkFCQSIsICJDTFMifTsKICAgIAogICAgZm9yIChjb25zdCBhdXRvJiBzIDogbG9va0ZvcikKICAgIHsKICAgICAgICBpZiAoc3RkOjpiaW5hcnlfc2VhcmNoKHN0ZDo6YmVnaW4oY3N0cmluZ3MpLCBzdGQ6OmVuZChjc3RyaW5ncyksIHMsIGNzdHJpbmdfbGVzcykpIHsKICAgICAgICAgICAgc3RkOjpjb3V0IDw8IHMgPDwgIiBGb3VuZC5cbiI7CiAgICAgICAgfQogICAgfQp9