만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

N과 M (12)

면접 대비

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

요약
N개의 수와 길이 M이 주어질 때, 같은 수를 여러 번 써도 되는 비내림차순 길이 M 수열을 모두 사전순으로 출력한다.
난이도

보통10점 중 4점

유형
백트래킹, 정렬, 재귀, 구현
정답자
아직 제출이 없습니다

문제

NN개의 자연수와 자연수 MM이 주어진다. 아래 조건을 모두 만족하는 길이 MM인 수열을 전부 구하는 프로그램을 작성하시오.

  • 주어진 NN개의 수 중에서 MM개를 골라 만든 수열이다.
  • 같은 수를 여러 번 골라도 된다.
  • 수열은 비내림차순이다. 길이가 KK인 수열 AA가 A1≤A2≤⋯≤AK−1≤AKA_1 \le A_2 \le \cdots \le A_{K-1} \le A_K를 만족하면 비내림차순이라고 한다.

입력

첫째 줄에 NN과 MM이 주어진다. (1≤M≤N≤81 \le M \le N \le 8)

둘째 줄에 NN개의 수가 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다.

출력

조건을 만족하는 수열을 한 줄에 하나씩 출력한다. 같은 수열을 두 번 이상 출력하면 안 되고, 수열의 각 수는 공백으로 구분해서 출력한다.

수열은 사전 순으로 증가하는 순서로 출력한다.

예제3

  1. 예제 1

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

    입력
    4 2
    9 7 9 1
    
    예상 출력
    1 1
    1 7
    1 9
    7 7
    7 9
    9 9
    
  3. 예제 3

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