Rough Sorting

시간 제한2초메모리 제한512 MB

요약
순열과 K가 주어질 때, 인접 교환을 최소 횟수로 사용해 역순 쌍이 K개 이하인 배열을 만들고, 답이 여러 개면 사전순으로 가장 작은 배열을 구한다.
난이도

보통10점 중 7점

유형
그리디, 정렬, 배열, 이분 탐색
정답자
아직 제출이 없습니다

문제

For skilled programmers, it is very easy to implement a sorting function. Moreover, they often avoid full sorting to reduce computation time if it is not necessary. Here, we consider "rough sorting" which sorts an array except for some pairs of elements. More formally, we define an array is "KK-roughly sorted" if an array is sorted except that at most KK pairs are in reversed order. For example, 1 3 2 4 is 1-roughly sorted because (3,2)(3, 2) is only the reversed pair. In the same way, 1 4 2 3 is 2-roughly sorted because (4,2)(4, 2) and (4,3)(4, 3) are reversed.

Considering rough sorting by exchanging adjacent elements repeatedly, you need less number of swaps than full sorting. For example, 4 1 2 3 needs three exchanges for full sorting, but you only need to exchange once for 2-rough sorting.

Given an array and an integer KK, your task is to find the result of the KK-rough sorting with a minimum number of exchanges. If there are several possible results, you should output the lexicographically minimum result. Here, the lexicographical order is defined by the order of the first different elements.

입력

The input consists of a single test case in the following format.

$N$ $K$
$x_{1}$
$\vdots$
$x_{N}$

The first line contains two integers NN and KK. The integer NN is the number of the elements of the array (1≤N≤1051 \le N \le 10^5). The integer KK gives how many reversed pairs are allowed (1≤K≤1091 \le K \le 10^9). Each of the following NN lines gives the element of the array. The array consists of the permutation of 11 to NN, therefore 1≤x_i≤N1 \le x\_i \le N and x_i≠x_jx\_i \ne x\_j (i≠ji \ne j) are satisfied.

출력

The output should contain NN lines. The ii-th line should be the ii-th element of the result of the KK-rough sorting. If there are several possible results, you should output the minimum result with the lexicographical order.

힌트

In the last example, the input array is already sorted, which means the input is already a 3-roughly sorted array and no swapping is needed.

예제4

  1. 예제 1

    입력
    3 1
    3
    2
    1
    
    예상 출력
    1
    3
    2
    
  2. 예제 2

    입력
    3 100
    3
    2
    1
    
    예상 출력
    3
    2
    1
    
  3. 예제 3

    입력
    5 3
    5
    3
    2
    1
    4
    
    예상 출력
    1
    3
    5
    2
    4
    
  4. 예제 4

    입력
    5 3
    1
    2
    3
    4
    5
    
    예상 출력
    1
    2
    3
    4
    5