Problem F2

Statement
Copy Copied
F2. Cycling (Hard Version)time limit per test5 secondsmemory limit per test1024 megabytesinputstandard inputoutputstandard outputThis is the hard version of the problem. The difference between the versions is that in this version, $$$1\le n\le 10^6$$$ and you need to output the answer for each prefix. You can hack only if you solved all versions of this problem.Leo works as a programmer in the city center, and his lover teaches at a high school in the suburbs. Every weekend, Leo would ride his bike to the suburbs to spend a nice weekend with his lover.There are $$$n$$$ cyclists riding in front of Leo on this road right now. They are numbered $$$1$$$, $$$2$$$, $$$\ldots$$$, $$$n$$$ from front to back. Initially, Leo is behind the $$$n$$$-th cyclist. The $$$i$$$-th cyclist has an agility value $$$a_i$$$. Leo wants to get ahead of the $$$1$$$-st cyclist. Leo can take the following actions as many times as he wants:  Assuming that the first person in front of Leo is cyclist $$$i$$$, he can go in front of cyclist $$$i$$$ for a cost of $$$a_i$$$. This puts him behind cyclist $$$i - 1$$$.  Using his super powers, swap $$$a_i$$$ and $$$a_j$$$ ($$$1\le i < j\le n$$$) for a cost of $$$(j - i)$$$. Leo wants to know the minimum cost to get in front of the $$$1$$$-st cyclist. In addition, he wants to know the answer for each $$$1\le i \le n$$$, $$$[a_1, a_2, \ldots, a_i]$$$ as the original array. The problems of different $$$i$$$ are independent. To be more specific, in the $$$i$$$-th problem, Leo starts behind the $$$i$$$-th cyclist instead of the $$$n$$$-th cyclist, and cyclists numbered $$$i + 1, i + 2, \ldots, n$$$ are not present.InputEach test contains multiple test cases. The first line contains the number of test cases $$$t$$$ ($$$1 \le t \le 10^4$$$). The description of the test cases follows. The first line of each test case contains a positive integer $$$n$$$ ($$$1 \leq n \leq 10^6$$$), representing the number of the cyclists.The second line of each test case contains $$$n$$$ integers $$$a_1, \ldots, a_n$$$ ($$$1 \leq a_i \leq 10^9$$$).It is guaranteed that the sum of $$$n$$$ over all test cases does not exceed $$$10^6$$$.OutputFor each test case, print $$$n$$$ integers, the answers for the array $$$[a_1, a_2, \ldots, a_i]$$$ for each $$$i = 1, 2, \ldots n$$$ in this order.ExampleInput431 2 441 1 1 121 244 1 3 2Output1 3 7
1 2 3 4
1 3
4 3 6 8
NoteIn the first test case, one possible way to move from the position behind the $$$n$$$-th cyclist to the position in front of the $$$1$$$-st cyclist is:  Leo swaps $$$a_2$$$ $$$(i=2)$$$ and $$$a_3$$$ $$$(j=3)$$$, then the array becomes $$$[1,4,2]$$$; it costs $$$j-i=3-2=1$$$. Leo is behind the $$$3$$$-rd cyclist and moves behind the $$$2$$$-nd cyclist; it costs $$$a_3=2$$$. Leo swaps $$$a_1$$$ $$$(i=1)$$$ and $$$a_2$$$ $$$(j=2)$$$, then the array becomes $$$[4,1,2]$$$; it costs $$$j-i=2-1=1$$$. Leo is behind the $$$2$$$-nd cyclist and moves behind the $$$1$$$-st cyclist; it costs $$$a_2=1$$$. Leo swaps $$$a_1$$$ $$$(i=1)$$$ and $$$a_2$$$ $$$(j=2)$$$, then the array becomes $$$[1,4,2]$$$; it costs $$$j-i=2-1=1$$$. Leo moves ahead of the $$$1$$$-st cyclist; it costs $$$a_1=1$$$. So the total cost is $$$1+2+1+1+1+1=7$$$. It can be proved that $$$7$$$ is the minimum cost.In the second test case, to move ahead of the $$$1$$$-st cyclist from the position behind the $$$n$$$-th cyclist, Leo should not swap anyone's agility value. The total cost is $$$1+1+1+1=4$$$.