선택 정렬의 이동 거리

아직 제출이 없습니다시간 제한5초메모리 제한1024 MB

문제

11부터 NN까지의 정수가 한 번씩 등장하는 수열 AA가 주어진다. 이 수열에서 선택 정렬 알고리즘을 수행할 때, 각 수의 이동 거리를 출력하라.

선택 정렬 알고리즘이 무엇인지 잘 모르는 친구들은 친절한 주원이가 준비한 아래 설명을 읽어보도록 하자.

  • 길이가 NN인 수열 A=\left\\{ A\_1,A\_2,\cdots ,A\_N \right\\}을 오름차순으로 정렬하는 선택 정렬 알고리즘은 아래 동작을 N1N-1번 반복해서 수행한다.

    1. 지금이 ii번째 동작이라면, A_i,A_i+1,,A_NA\_i,A\_{i+1},\cdots ,A\_N 중 최솟값 A_jA\_j를 찾는다.
    2. A_iA\_iA_jA\_j의 위치를 교환한다. 이때 A_iA\_iA_jA\_j의 이동 거리가 각각 (ji)(j-i)만큼 증가한다.

예를 들어 \left\\{ 1,3,5,2,4 \right\\}와 같은 수열이 주어졌다고 하자. 처음에 모든 수의 이동 거리는 00으로 같다. 선택 정렬 알고리즘은 다음과 같은 과정을 거쳐 수행된다.

  1. A_1=1A\_1=1A_1=1A\_1=1을 교환해서 \left\\{ 1,3,5,2,4 \right\\}가 된다. 이때 11의 이동 거리는 00만큼 증가한다.
  2. A_2=3A\_2=3A_4=2A\_4=2를 교환해서 \left\\{ 1,2,5,3,4 \right\\}가 된다. 이때 2233의 이동 거리는 22만큼 증가한다.
  3. A_3=5A\_3=5A_4=3A\_4=3을 교환해서 \left\\{ 1,2,3,5,4 \right\\}가 된다. 이때 3355의 이동 거리는 11만큼 증가한다.
  4. A_4=5A\_4=5A_5=4A\_5=4를 교환해서 \left\\{ 1,2,3,4,5 \right\\}가 된다. 이때 4455의 이동 거리는 11만큼 증가한다.

따라서 1100만큼, 2222만큼, 3333만큼, 4411만큼, 5522만큼 이동한다.

입력

첫째 줄에 수열의 길이 NN이 주어진다.

둘째 줄에 수열의 원소 A_1,A_2,,A_NA\_1,A\_2,\cdots ,A\_N이 차례대로 공백으로 구분되어 주어진다.

출력

첫째 줄에 NN개의 정수를 공백으로 구분하여 출력한다. ii번째 정수는 ii의 이동 거리를 의미한다.

제한

  • 1N5×1051\leq N\leq 5\times 10^5
  • AA에는 11부터 NN까지의 정수가 정확히 한 번씩 등장한다.