Codeforces Round 609 (Div. 1) |
---|
Закончено |
Вам дана перестановка $$$p_1, p_2, \ldots, p_n$$$.
За одно действие вы можете поменять местами два соседних элемента.
Вы хотите сделать как можно меньше действий, чтобы в конце в перестановке был подотрезок $$$1,2,\ldots, k$$$, иначе говоря, в конце должен существовать индекс $$$i$$$, $$$1 \leq i \leq n-k+1$$$, что $$$p_i = 1, p_{i+1} = 2, \ldots, p_{i+k-1}=k$$$.
Обозначим за $$$f(k)$$$ минимальное число действий, которое нужно сделать, чтобы подотрезок $$$1,2,\ldots,k$$$ появился в перестановке.
Вам нужно найти $$$f(1), f(2), \ldots, f(n)$$$.
В первой строке записано одно целое число $$$n$$$ ($$$1 \leq n \leq 200\,000$$$): количество элементов в перестановке.
Во второй строке записаны $$$n$$$ целых чисел $$$p_1, p_2, \ldots, p_n$$$: данная перестановка ($$$1 \leq p_i \leq n$$$).
Выведите $$$n$$$ целых чисел, минимальное число действий, которое нужно сделать, чтобы подотрезок $$$1,2,\ldots,k$$$ появился в перестановке, для $$$k=1, 2, \ldots, n$$$.
5 5 4 3 2 1
0 1 3 6 10
3 1 2 3
0 0 0
Название |
---|