View problem - 버블 정렬 (OJUZ10_bubblesort)

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

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

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

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

입력 형식

첫 번째 줄에는 NNKK가 주어진다.

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

출력 형식

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

부분문제

모든 채점 데이터에 대해,

  • N1N \ge 1
  • 1KN1 \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