코딩테스트/백준

[실3] 15650 - n과 m(2)

ShovelingLife 2022. 7. 5. 10:20
#include <iostream>
#include <algorithm>

using namespace std;

#define MAX 9

int n, m;
int arr[MAX]{ 0 };
bool visited[MAX]{ 0 };

void dfs(int num, int depth) 
{
    if (depth == m)
    {
        for (int i = 0; i < m; i++)
            cout << arr[i] << " ";

        cout << "\n";
        return;
    }
    for (int i = num; i <= n; i++)
    {
        if (!visited[i])
        {
            visited[i] = true;
            arr[depth] = i;
            dfs(i + 1, depth + 1);
            visited[i] = false;
        }
    }
}

int main() 
{
    cin >> n >> m;
    dfs(1, 0);
}