백준 15651 c++
#include <iostream>
//15649와 동일하지만, 중복허용
#define MAX 8
using namespace std;
int input(int lower, int upper);
void dfs(int cnt);
int n, m;
int arr[MAX] = { 0, };
bool visited[MAX] = { 0, };
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
//int n, m;
n = input(1, 7);
m = input(1, n);
dfs(0);
return 0;
}
int input(int lower, int upper)
{
//cout << "input()" << endl;
int A;
while (1)
{
cin >> A;
if (A >= lower && A <= upper)
{
break;
}
else
{
;
}
}
return A;
}
void dfs(int cnt)
{
//cout << dfs()"\n;
if (cnt == m)
{
for (int i = 0; i < m; i++)
{
cout << arr[i] << " ";
}
cout << '\n';
return;
}
for (int i = 1; i <= n; i++)
{
/*if (!visited[i])
{
visited[i] = true;
arr[cnt] = i;
dfs(cnt + 1);
visited[i] = false;
}*/
visited[i] = true;
arr[cnt] = i;
dfs(cnt + 1);
visited[i] = false;
}
}