CF BUDDY
← Problems·

1268C · K Integers

2300 · binary search, data structures

Problem: You are given a permutation p1,p2,,pnp_1, p_2, \ldots, p_n.

In one move you can swap two adjacent values.

You want to perform a minimum number of moves, such that in the end there will exist a subsegment 1,2,,k1,2,\ldots, k, in other words in the end there should be an integer ii, 1ink+11 \leq i \leq n-k+1 such that pi=1,pi+1=2,,pi+k1=kp_i = 1, p_{i+1} = 2, \ldots, p_{i+k-1}=k.

Let f(k)f(k) be the minimum number of moves that you need to make a subsegment with values 1,2,,k1,2,\ldots,k appear in the permutation.

You need to find f(1),f(2),,f(n)f(1), f(2), \ldots, f(n).

Input Format: The first line of input contains one integer nn (1n2000001 \leq n \leq 200\,000): the number of elements in the permutation.

The next line of input contains nn integers p1,p2,,pnp_1, p_2, \ldots, p_n: given permutation (1pin1 \leq p_i \leq n).

Output Format: Print nn integers, the minimum number of moves that you need to make a subsegment with values 1,2,,k1,2,\ldots,k appear in the permutation, for k=1,2,,nk=1, 2, \ldots, n.

Sample Cases

Case 1

Input

5
5 4 3 2 1

Output

0 1 3 6 10

Case 2

Input

3
1 2 3

Output

0 0 0

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback