#include <iostream>
using namespace std;
size_t alternateLength(int* a, size_t size, int first, int second) {
for(size_t i=0; i < size; i++)
if (a[i] == first) {
size_t count = 0;
size_t j = i;
for(;;) {
j++; count++;
if (j>=size) j=0; //Дошли до конца? Начнем с начала
if (i==j) return 0; //Сделали полный цикл => не нашли
if (a[j]==second) return ++count; //Нашли второе - вернули
}
}
return 0;
}
int main() {
int WDOrder[] = {1, 2, 9, 5, 3, 6, 8};
cout << alternateLength(WDOrder, sizeof(WDOrder)/sizeof(WDOrder[0]), 5, 2);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnNpemVfdCBhbHRlcm5hdGVMZW5ndGgoaW50KiBhLCBzaXplX3Qgc2l6ZSwgaW50IGZpcnN0LCBpbnQgc2Vjb25kKSB7Cglmb3Ioc2l6ZV90IGk9MDsgaSA8IHNpemU7IGkrKykKCQlpZiAoYVtpXSA9PSBmaXJzdCkgewoJCQlzaXplX3QgY291bnQgPSAwOwoJCQlzaXplX3QgaiA9IGk7CgkJCWZvcig7OykgewoJCQkJaisrOyBjb3VudCsrOwoJCQkJaWYgKGo+PXNpemUpIGo9MDsgLy/QlNC+0YjQu9C4INC00L4g0LrQvtC90YbQsD8g0J3QsNGH0L3QtdC8INGBINC90LDRh9Cw0LvQsAoJCQkJaWYgKGk9PWopIHJldHVybiAwOyAvL9Ch0LTQtdC70LDQu9C4INC/0L7Qu9C90YvQuSDRhtC40LrQuyA9PiDQvdC1INC90LDRiNC70LgKCQkJCWlmIChhW2pdPT1zZWNvbmQpIHJldHVybiArK2NvdW50OyAvL9Cd0LDRiNC70Lgg0LLRgtC+0YDQvtC1IC0g0LLQtdGA0L3Rg9C70LgKCQkJfQoJCX0KCXJldHVybiAwOwp9CgppbnQgbWFpbigpIHsKCWludCBXRE9yZGVyW10gPSB7MSwgMiwgOSwgNSwgMywgNiwgOH07Cgljb3V0IDw8IGFsdGVybmF0ZUxlbmd0aChXRE9yZGVyLCBzaXplb2YoV0RPcmRlcikvc2l6ZW9mKFdET3JkZXJbMF0pLCA1LCAyKTsKfQ==