N개의 수로 만드는 길이 M 수열

서로 다른 N개의 수와 M이 주어질 때, N개 중 M개를 골라 나열한 순열을 사전순으로 모두 출력한다.

쉬움3백트래킹재귀정렬완전 탐색면접 대비아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

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

  • 같은 수를 두 번 고를 수는 없다.
  • 고른 수가 같아도 나열한 순서가 다르면 서로 다른 수열이다.

입력

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

둘째 줄에 N개의 수가 주어진다. 주어지는 수는 10,000보다 작거나 같은 자연수이고, 모두 다르다.

출력

조건을 만족하는 수열을 한 줄에 하나씩 출력한다. 한 수열의 원소는 공백으로 구분한다. 같은 수열을 두 번 출력하면 안 된다.

수열은 사전 순으로 증가하는 순서로 출력한다. 두 수열의 사전 순은 앞쪽 원소부터 차례로 수의 크기를 비교해 정한다.