Это сложная версия задачи. Отличие между версиями заключается в том, что в этой версии вам требуется найти значения $$$f(\cdot)$$$ для каждого префикса $$$a$$$.
Для любого массива $$$[c_1, c_2, \ldots, c_m]$$$ определим $$$f(c)$$$ как максимально возможное значение $$$\operatorname{mex}(c)$$$$$$^{\text{∗}}$$$, которое можно получить, выполнив следующую операцию ровно один раз:
Вам дан массив $$$a$$$, состоящий из $$$n$$$ целых неотрицательных чисел. Для каждого префикса $$$a^{(i)} = [a_1, a_2, \ldots, a_i]$$$ определите значение $$$f(a^{(i)})$$$.
$$$^{\text{∗}}$$$$$$\operatorname{mex}(c)$$$ обозначает минимальное целое неотрицательное число, отсутствующее среди элементов массива $$$c$$$. Например, $$$\operatorname{mex}([2,2,1])=0$$$, потому что $$$0$$$ не принадлежит массиву, а $$$\operatorname{mex}([0,3,1,2])=4$$$, потому что $$$0$$$, $$$1$$$, $$$2$$$ и $$$3$$$ присутствуют в массиве, а $$$4$$$ — нет.
$$$^{\text{†}}$$$$$$u \bmod v$$$ обозначает остаток от деления $$$u$$$ на $$$v$$$.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит одно целое число $$$n$$$ ($$$1 \le n \le 2 \cdot 10^5$$$) — длину массива $$$a$$$.
Вторая строка каждого набора входных данных содержит $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$0 \le a_i \le 10^6$$$) — элементы массива $$$a$$$.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^5$$$. Гарантируется, что сумма $$$\max(a_1,a_2,\ldots,a_n)$$$ по всем наборам входных данных не превосходит $$$10^6$$$.
Для каждого набора входных данных выведите $$$n$$$ целых чисел, где $$$i$$$-е число обозначает значение $$$f([a_1, a_2, \ldots, a_i])$$$.
440 1 2 326 768 1 7 6 4 399 9 8 2 4 4 3 5 3
1 2 3 41 21 2 3 4 5 51 2 3 4 5 5 5 6 6
Рассмотрим первый набор входных данных:
Рассмотрим второй набор входных данных: