만드는 중입니다

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

N과 M (9)

면접 대비

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

요약
중복이 있을 수 있는 N개의 수와 길이 M이 주어질 때, 각 수를 주어진 개수만큼만 사용해 만들 수 있는 서로 다른 길이 M의 수열을 사전순으로 출력한다.
난이도

보통10점 중 4점

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

문제

N개의 자연수와 자연수 M이 주어진다. 주어진 N개의 수 중에서 M개를 골라 만들 수 있는 길이 M인 수열을 모두 구하는 프로그램을 작성하시오.

같은 수가 여러 번 주어질 수 있고, 각 수는 주어진 개수만큼만 쓸 수 있다.

입력

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

둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 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 1
    7 9
    9 1
    9 7
    9 9
    
  3. 예제 3

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