N과 M (10)

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

요약
N개의 수와 M이 주어질 때, 주어진 수에서 중복 없이 고른 길이 M의 비내림차순 수열을 사전순으로 모두 출력한다.
난이도

쉬움10점 중 3점

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

문제

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

  • 주어진 NN개의 자연수 중에서 MM개를 고른 수열
  • 고른 수열은 비내림차순이어야 한다. 길이가 KK인 수열 AA가 A1≤A2≤⋯≤AK−1≤AKA_1 \le A_2 \le \dots \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 7
    1 9
    7 9
    9 9
    
  3. 예제 3

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