//(c)Terminator
#include <iostream>
using namespace std;
bool isIncludedAtoB(const int* a, unsigned n1,
const int* b, unsigned n2){
const int* p1, *p2;
const int* e1 = a + n1;
const int* e2 = b + n2;
for(; b != e2; ++b){
p1 = a;
p2 = b;
while((p1 != e1) && (p2 != e2)){
if(*p1 != *p2)
break;
++p1;
++p2;
}
if(p1 == e1)
return true;
}
return false;
}
int main(void){
int a[] = { 1, 0, 1, 1 };
int b[] = { 0, 1, 0, 1, 1, 0 };
bool ret = isIncludedAtoB(a, sizeof(a)/sizeof(a[0]),
b, sizeof(b)/sizeof(b[0]));
(ret) ?
cout << "Yes included a to b." << endl
:
cout << "Not !!!" << endl;
return 0;
}
Ly8oYylUZXJtaW5hdG9yCiNpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgoKYm9vbCBpc0luY2x1ZGVkQXRvQihjb25zdCBpbnQqIGEsIHVuc2lnbmVkIG4xLCAKCQkJICAgICAgICBjb25zdCBpbnQqIGIsIHVuc2lnbmVkIG4yKXsKCWNvbnN0IGludCogcDEsICpwMjsKCWNvbnN0IGludCogZTEgPSBhICsgbjE7Cgljb25zdCBpbnQqIGUyID0gYiArIG4yOwoKCWZvcig7IGIgIT0gZTI7ICsrYil7CgkJCgkJcDEgPSBhOwoJCXAyID0gYjsKCQl3aGlsZSgocDEgIT0gZTEpICYmIChwMiAhPSBlMikpewoJCQlpZigqcDEgIT0gKnAyKQoJCQkJYnJlYWs7CgkJCSsrcDE7CgkJCSsrcDI7CgkJfQoKCQlpZihwMSA9PSBlMSkKCQkJcmV0dXJuIHRydWU7Cgl9CglyZXR1cm4gZmFsc2U7Cn0KCgoKaW50IG1haW4odm9pZCl7CglpbnQgYVtdICA9IHsgMSwgMCwgMSwgMSB9OwoJaW50IGJbXSAgPSB7IDAsIDEsIDAsIDEsIDEsIDAgfTsKCglib29sIHJldCA9IGlzSW5jbHVkZWRBdG9CKGEsIHNpemVvZihhKS9zaXplb2YoYVswXSksCgkJICAgICAgICAgICAgICAgICAgICAgIGIsIHNpemVvZihiKS9zaXplb2YoYlswXSkpOwoJKHJldCkgPyAKCQljb3V0IDw8ICJZZXMgaW5jbHVkZWQgYSB0byBiLiIgPDwgZW5kbAoJOgoJCWNvdXQgPDwgIk5vdCAhISEiIDw8IGVuZGw7CglyZXR1cm4gMDsKfQ==