Здравствуйте, landerhigh, Вы писали:
L>Дело в том, что мы не ищем 1 или 0. Мы ищем позицию K, где sensor[0][K] != sensor[0][K-1].
L>И соответственно, когда мы ее нашли в первом датчике, мы проверяем значение sensor[1][K]. Если оно равно 1, то выполняем также и сравнение sensor[1][K] == sensor[1][K-1]. Если оно true, то этот датичк сработал раньше, чем датчик 0 и нужно вести поиск по sensor[1][0, K] (на самом деле sensor[1][0, K) )
Соответственно, первоначальное описание, содержащие:
В первой последовательности бинарным поиском в интервале [0,M) находим индекс K первой единицы.
Проверяем значение, находящемся по этому индексу K в следующей последовательности
следовало бы переформулировать так:
В первой последовательности бинарным поиском в интервале [0,M) находим индекс K первой единицы.
Проверяем значение, находящемся по этому индексу (K-1) в следующей последовательности
.
ибо смысл проверять сперва sensor[i+1][K] и только затем, если там 1, делать сравнение c sensor[i+1][K-1], не видно. Можно же сразу сравнивать sensor[i][K] с sensor[i+1][K-1].