삽입 정렬을 해볼까

시간 제한1초메모리 제한1024 MB

요약
배열이 주어질 때 t번째 원소까지만 삽입 정렬한 결과를 출력한다.
난이도

쉬움10점 중 3점

유형
시뮬레이션, 정렬, 구현
정답자
아직 제출이 없습니다

문제

삽입 정렬은 배열의 요소를 앞에서부터 차례대로 이미 정렬된 배열과 비교하여 자신의 위치를 찾아 삽입해 정렬하는 알고리즘이다. 아래 그림은 배열 \[3,1,4,1,5,9,2,6,5,3,5]\[3\\,1\\,4\\,1\\,5\\,9\\,2\\,6\\, 5\\, 3\\, 5]를 삽입 정렬하는 과정을 나타낸 것이다.

길이 nn의 배열 aa가 주어질 때 tt번째 원소까지 올바른 위치에 삽입한 배열을 구해보자.

입력

첫 번째 줄에 배열 aa의 길이 nn과 tt가 주어진다. (1≤n≤106;1≤t≤n1 \leq n \leq 10^6; 1 \leq t \leq n)

두 번째 줄에 aa의 원소 nn개가 공백으로 구분되어 주어진다. (1≤a_i≤1091\leq a\_i \leq 10^{9})

주어지는 모든 수는 정수이다.

출력

tt번째 원소까지 올바른 위치에 삽입한 배열을 공백으로 구분하여 출력한다.

힌트

충분히 빠른 입출력 방식을 사용하지 않으면 시간 초과를 받을 수 있다.

예를 들어 C++의 cin/cout을 사용할 때에는 입력받기 전에 cin.tie(NULL);을 사용하고, Python에서는 input() 대신 sys.stdin.readline()을 사용하는 것을 권장한다.

예제1

  1. 예제 1

    입력
    11 5
    3 1 4 1 5 9 2 6 5 3 5
    
    예상 출력
    1 1 3 4 5 9 2 6 5 3 5