#include <iostream>
#include <vector>
#include <algorithm>
bool CheckCommon( std::vector< long > &inVectorA, std::vector< long > &inVectorB )
{
std::vector< long > *lower, *higher;
size_t sizeL = 0, sizeH = 0;
if( inVectorA.size() > inVectorB.size() )
{
lower = &inVectorA;
sizeL = inVectorA.size();
higher = &inVectorB;
sizeH = inVectorB.size();
}
else
{
lower = &inVectorB;
sizeL = inVectorB.size();
higher = &inVectorA;
sizeH = inVectorA.size();
}
size_t indexL = 0, indexH = 0;
for( ; indexH < sizeH; indexH++ )
{
bool exists = std::binary_search( lower->begin(), lower->end(), higher->at(indexH) );
if( exists == true )
return true;
else
continue;
}
return false;
}
void test1()
{
std::vector<long> A{10, 20, 30, 40, 50};
std::vector<long> B{40, 50};
std::cout << std::boolalpha << CheckCommon(A, B) << " " << CheckCommon(B, A) << std::endl;
}
void test2()
{
std::vector<long> A{10, 20, 31, 41, 50};
std::vector<long> B{40, 50, 30};
std::cout << std::boolalpha << CheckCommon(A, B) << " " << CheckCommon(B, A) << std::endl;
}
int main()
{
test1();
test2();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKYm9vbCBDaGVja0NvbW1vbiggc3RkOjp2ZWN0b3I8IGxvbmcgPiAmaW5WZWN0b3JBLCBzdGQ6OnZlY3RvcjwgbG9uZyA+ICZpblZlY3RvckIgKQp7CiAgICBzdGQ6OnZlY3RvcjwgbG9uZyA+ICpsb3dlciwgKmhpZ2hlcjsKCiAgICBzaXplX3Qgc2l6ZUwgPSAwLCBzaXplSCA9IDA7CgogICAgaWYoIGluVmVjdG9yQS5zaXplKCkgPiBpblZlY3RvckIuc2l6ZSgpICkKICAgIHsKICAgICAgICBsb3dlciA9ICZpblZlY3RvckE7CiAgICAgICAgc2l6ZUwgPSBpblZlY3RvckEuc2l6ZSgpOwogICAgICAgIGhpZ2hlciA9ICZpblZlY3RvckI7CiAgICAgICAgc2l6ZUggPSBpblZlY3RvckIuc2l6ZSgpOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIGxvd2VyID0gJmluVmVjdG9yQjsKICAgICAgICBzaXplTCA9IGluVmVjdG9yQi5zaXplKCk7CiAgICAgICAgaGlnaGVyID0gJmluVmVjdG9yQTsKICAgICAgICBzaXplSCA9IGluVmVjdG9yQS5zaXplKCk7CiAgICB9CgogICAgc2l6ZV90IGluZGV4TCA9IDAsIGluZGV4SCA9IDA7CgogICAgZm9yKCA7IGluZGV4SCA8IHNpemVIOyBpbmRleEgrKyApCiAgICB7CiAgICAgICAgYm9vbCBleGlzdHMgPSBzdGQ6OmJpbmFyeV9zZWFyY2goIGxvd2VyLT5iZWdpbigpLCBsb3dlci0+ZW5kKCksIGhpZ2hlci0+YXQoaW5kZXhIKSApOwoKICAgICAgICBpZiggZXhpc3RzID09IHRydWUgKQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgfQogICAgcmV0dXJuIGZhbHNlOwp9Cgp2b2lkIHRlc3QxKCkKewogICBzdGQ6OnZlY3Rvcjxsb25nPiBBezEwLCAyMCwgMzAsIDQwLCA1MH07CiAgIHN0ZDo6dmVjdG9yPGxvbmc+IEJ7NDAsIDUwfTsKCiAgIHN0ZDo6Y291dCA8PCBzdGQ6OmJvb2xhbHBoYSA8PCBDaGVja0NvbW1vbihBLCBCKSA8PCAiICIgPDwgQ2hlY2tDb21tb24oQiwgQSkgPDwgc3RkOjplbmRsOwp9Cgp2b2lkIHRlc3QyKCkKewogICBzdGQ6OnZlY3Rvcjxsb25nPiBBezEwLCAyMCwgMzEsIDQxLCA1MH07CiAgIHN0ZDo6dmVjdG9yPGxvbmc+IEJ7NDAsIDUwLCAzMH07CgogICBzdGQ6OmNvdXQgPDwgc3RkOjpib29sYWxwaGEgPDwgQ2hlY2tDb21tb24oQSwgQikgPDwgIiAiIDw8IENoZWNrQ29tbW9uKEIsIEEpIDw8IHN0ZDo6ZW5kbDsKfQoKaW50IG1haW4oKQp7CiAgIHRlc3QxKCk7CiAgIHRlc3QyKCk7CiAgIHJldHVybiAwOwp9Cg==