알고리즘 풀이/백준

15654번-n과 m(5)

claire 2022. 3. 8. 15:58
/*
N개의 자연수와 자연수 M이 주어졌을 때,
N개의 자연수 중에서 M개를 고른 수열. 
*/
#include<iostream>
#include<algorithm>
using namespace std;

int board[10];
int n, m;
int arr[10];
bool isused[10];

void func(int k) {
	if (k == m) {
		for (int i = 0; i < m; i++) {
			cout << board[arr[i]] << ' ';
		}
		cout << '\n';
		return;
	}
	for (int i = 0; i < n; i++) {
		if (isused[i])continue;
		arr[k] = i;
		isused[i] = 1;
		func(k + 1);
		isused[i] = 0;
	}
}

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin >> n >> m;
	for (int i = 0; i < n; i++)
		cin >> board[i];
	sort(board, board + n);
	func(0);
}