Изменения

Перейти к: навигация, поиск
Псевдокод
Поиск левой границы ответов <tex> L_p </tex>.
'''function''' find_L_p(): l = '''lcp'''(p, s[array[0]]); r = '''lcp'''(p, s[array[n - 1]]); '''if''' (l == w or p < s[array[0]]) L_p = 0; '''else''' '''if''' (p > s[array[n - 1]) L_p = n; '''else''' { L = 0; R = n - 1; '''while''' (R - L > 1) '''do''' { M = (L + R) / 2; m_l = '''lcp'''(array[L], array[M]); m_r = '''lcp'''(array[M], array[R]); '''if''' (l <tex>\geqslant</tex> r) '''if''' (m_l <tex>\geqslant</tex> l) m = l + '''lcp'''_l(s[array[M]], p); '''else''' m = m_l;
'''else'''
m = m_l; '''else''' '''if''' (m_r <tex>\geqslant</tex> r) m = r + '''lcp'''_r(s[array[M]], p); '''else''' m = m_r; '''if''' (m == w || p <tex>\leqslant</tex><tex>_m</tex> s[array[M]]){ R = M; r = m; } '''else''' { L = M; l = m; }
}
L_p = R;
}
L_p = R;
}
== См. также ==
Анонимный участник

Навигация