View problem - 버블 정렬 (OJUZ10_bubblesort)

Time limitMemory limit# of submissions# of submitted usersSolved #Accepted user ratio
1000 ms64 MiB93371643.24%

버블 정렬이란, 두 인접한 원소를 검사하여 자리를 바꾸는 방식으로 길이가 $N$인 수열을 정렬하는 알고리즘이다. 버블 정렬은 아래와 같은 단계를 총 $N$번 진행하면 된다.

  • 첫 번째 값과 두 번째 값을 비교하여 첫 번째 값이 더 크면 자리를 바꾼다.
  • 두 번째 값과 세 번째 값을 비교하여 두 번째 값이 더 크면 자리를 바꾼다.
  • $N - 1$번째 값과 $N$번째 값을 비교하여 $N - 1$번째 값이 더 크면 자리를 바꾼다.

세찬이는 버블 정렬의 결과는 당연히 알기에 버블 정렬의 중간 과정을 알아보려고 한다. 하지만 $N$이 매우 크므로 위와 같은 단계를 $K$번 하면 시간이 오래 걸린다. 세찬이를 도와 버블 정렬의 중간 과정을 구하는 프로그램을 작성하여라.

입력 형식

첫 번째 줄에는 $N$과 $K$가 주어진다.

두 번째 줄에는 처음 수열의 상태가 주어진다. 즉, 처음 수열을 이루는 $N$개의 정수가 공백을 사이로 두고 차례대로 주어진다.

출력 형식

위 단계를 $K$번 한 후 수열의 상태를 출력한다.

부분문제

모든 채점 데이터에 대해,

  • $N \ge 1$
  • $1 \le K \le N$
  • 수열의 각 항은 1 이상 1,000,000,000 이하의 정수이다.
부분문제 점수 N 비고
1 11 ≤ 50 -
2 23 ≤ 2, 000 -
3 47 ≤ 100, 000 수열의 각 항은 서로 다르다.
4 19 ≤ 100, 000 -

입력과 출력의 예

입력

4 1
62 23 32 15

출력

23 32 15 62