Изменения
→Псевдокод
B[i] = -1
'''for''' i = 0 '''to''' N - 1
'''if''' j <tex>\gegeqslant</tex> block_size
j = 0
cur_block++
'''for''' i = 0 '''to''' K - 1
ind = (1 << (j - 1)) + i
'''if''' ind <tex>\gegeqslant</tex> K
ST[i][j] = ST[i][j - 1]
'''else if''' A[ST[i][j - 1]] > A[ST[ind][j - 1]]
hash[i] = 0
'''for''' i = 0 '''to''' N - 1
'''if''' j <tex>\gegeqslant</tex> block_size
j = 0
cur_block++
'''if''' j > 0 '''and''' (i <tex>\gegeqslant</tex> n '''or''' A[i - 1] < A[i])
hash[cur_block] += (1 << (j - 1))
<font color=green>// Осталось только для каждого блока предподсчитать позиции минимумов на всех подотрезках</font>