Ах, я понял, в чем путаница:
l[m-2],...l[0], k[0]
это ключевые слова input , другими словами, они представляют ключ . Это не декларации размера массивов, как можно ожидать, если вы разработчик.
Тогда подраздел в массиве k
должен быть производный, используя массив l
для промежуточных значений.
В соответствии с формулами, принимая самое большое i
, то есть i_max = T - 2
, вы получите самый высокий индекс для массива l
из i_max + m - 1 = T - 2 + m - 1 = T + m - 3
и, следовательно, Размер массива еще один: T + m - 2
. Размер массива, начинающегося с нуля, всегда равен индексу последнего элемента - плюс один, в конце концов.
Аналогично, для массива подключей k
вы получите самый высокий индекс i_max + 1
, который равен T - 2 + 1
или T - 1
. Опять же, размер массива еще один, поэтому в k
есть T
элементов. Это имеет большой смысл, если вам требуются T
ключи раунда:)
Обратите внимание, что кажется возможным просто повторить вывод подраздела для каждого раунда, если вам требуется минимум оперативной памяти. Весь массив l
тоже не кажется необходимым. Для программных реализаций, которые не имеют значения ни на йоту, конечно.