#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> vectorA ;
std::vector <long> vectorB ;
vectorA.push_back(11111);
vectorA.push_back(11112);
vectorA.push_back(11113);
vectorA.push_back(11114);
vectorA.push_back(11467);
vectorA.push_back(111345);
vectorB.push_back(11116);
vectorB.push_back(11118);
vectorB.push_back(11112);
vectorB.push_back(11120);
vectorB.push_back(11190);
vectorB.push_back(11640);
vectorB.push_back(11740);
std::cout << std::boolalpha << CheckCommon(vectorA, vectorB) << " " << CheckCommon(vectorA, vectorB) << std::endl;
}
int main()
{
// test1();
test2();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKYm9vbCBDaGVja0NvbW1vbiggc3RkOjp2ZWN0b3I8IGxvbmcgPiAmaW5WZWN0b3JBLCBzdGQ6OnZlY3RvcjwgbG9uZyA+ICZpblZlY3RvckIgKQp7CiAgICBzdGQ6OnZlY3RvcjwgbG9uZyA+ICpsb3dlciwgKmhpZ2hlcjsKCiAgICBzaXplX3Qgc2l6ZUwgPSAwLCBzaXplSCA9IDA7CgogICAgaWYoIGluVmVjdG9yQS5zaXplKCkgPiBpblZlY3RvckIuc2l6ZSgpICkKICAgIHsKICAgICAgICBsb3dlciA9ICZpblZlY3RvckE7CiAgICAgICAgc2l6ZUwgPSBpblZlY3RvckEuc2l6ZSgpOwogICAgICAgIGhpZ2hlciA9ICZpblZlY3RvckI7CiAgICAgICAgc2l6ZUggPSBpblZlY3RvckIuc2l6ZSgpOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIGxvd2VyID0gJmluVmVjdG9yQjsKICAgICAgICBzaXplTCA9IGluVmVjdG9yQi5zaXplKCk7CiAgICAgICAgaGlnaGVyID0gJmluVmVjdG9yQTsKICAgICAgICBzaXplSCA9IGluVmVjdG9yQS5zaXplKCk7CiAgICB9CgogICAgc2l6ZV90IGluZGV4TCA9IDAsIGluZGV4SCA9IDA7CgogICAgZm9yKCA7IGluZGV4SCA8IHNpemVIOyBpbmRleEgrKyApCiAgICB7CiAgICAgICAgYm9vbCBleGlzdHMgPSBzdGQ6OmJpbmFyeV9zZWFyY2goIGxvd2VyLT5iZWdpbigpLCBsb3dlci0+ZW5kKCksIGhpZ2hlci0+YXQoaW5kZXhIKSApOwoKICAgICAgICBpZiggZXhpc3RzID09IHRydWUgKQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgfQogICAgcmV0dXJuIGZhbHNlOwp9Cgp2b2lkIHRlc3QxKCkKewogICBzdGQ6OnZlY3Rvcjxsb25nPiBBezEwLCAyMCwgMzAsIDQwLCA1MH07CiAgIHN0ZDo6dmVjdG9yPGxvbmc+IEJ7NDAsIDUwfTsKCiAgIHN0ZDo6Y291dCA8PCBzdGQ6OmJvb2xhbHBoYSA8PCBDaGVja0NvbW1vbihBLCBCKSA8PCAiICIgPDwgQ2hlY2tDb21tb24oQiwgQSkgPDwgc3RkOjplbmRsOwp9Cgp2b2lkIHRlc3QyKCkKewogICBzdGQ6OnZlY3RvciA8bG9uZz4gdmVjdG9yQSA7CiAgICAgc3RkOjp2ZWN0b3IgPGxvbmc+IHZlY3RvckIgOwogICAgIHZlY3RvckEucHVzaF9iYWNrKDExMTExKTsKICAgICB2ZWN0b3JBLnB1c2hfYmFjaygxMTExMik7CiAgICAgdmVjdG9yQS5wdXNoX2JhY2soMTExMTMpOwogICAgIHZlY3RvckEucHVzaF9iYWNrKDExMTE0KTsKICAgICB2ZWN0b3JBLnB1c2hfYmFjaygxMTQ2Nyk7CiAgICAgdmVjdG9yQS5wdXNoX2JhY2soMTExMzQ1KTsKICAgICB2ZWN0b3JCLnB1c2hfYmFjaygxMTExNik7CiAgICAgdmVjdG9yQi5wdXNoX2JhY2soMTExMTgpOwogICAgIHZlY3RvckIucHVzaF9iYWNrKDExMTEyKTsKICAgIHZlY3RvckIucHVzaF9iYWNrKDExMTIwKTsKICAgIHZlY3RvckIucHVzaF9iYWNrKDExMTkwKTsKICAgIHZlY3RvckIucHVzaF9iYWNrKDExNjQwKTsKICAgIHZlY3RvckIucHVzaF9iYWNrKDExNzQwKTsKICAgc3RkOjpjb3V0IDw8IHN0ZDo6Ym9vbGFscGhhIDw8IENoZWNrQ29tbW9uKHZlY3RvckEsIHZlY3RvckIpIDw8ICIgIiA8PCBDaGVja0NvbW1vbih2ZWN0b3JBLCB2ZWN0b3JCKSA8PCBzdGQ6OmVuZGw7Cn0KCmludCBtYWluKCkKewogIC8vIHRlc3QxKCk7CiAgIHRlc3QyKCk7CiAgIHJldHVybiAwOwp9Cg==