728x90
#include <iostream>
using namespace std;
void select(int numbers[], int result[], bool visited[], int n, int num) {
if (num == 6) {
for (int i = 0; i < 6; i++) {
cout << result[i] << " ";
}
cout << endl;
return;
}
for (int i = 0; i < n; i++) {
if (num != 0) {
if (!visited[i] && numbers[i] > result[num - 1]) {
visited[i] = true;
result[num] = numbers[i];
select(numbers, result, visited, n, num + 1);
visited[i] = false;
}
}
else {
if (!visited[i]) {
visited[i] = true;
result[num] = numbers[i];
select(numbers, result, visited, n, num + 1);
visited[i] = false;
}
}
}
}
int main() {
while (true) {
int n;
cin >> n;
if (n == 0) break;
int* numbers = new int[n];
for (int i = 0; i < n; i++) {
cin >> numbers[i];
}
int* result = new int[n];
bool* visited = new bool[n];
for (int i = 0; i < n; i++) {
visited[i] = false;
}
select(numbers, result, visited, n, 0);
cout << endl;
}
return 0;
}
728x90
'알고리즘 문제' 카테고리의 다른 글
[백준] 1110번 더하기 사이클 (0) | 2020.01.29 |
---|---|
[백준] 11053번 가장 긴 증가하는 부분 수열 (LIS) (0) | 2020.01.29 |
[백준] 1181번 단어 정렬 (0) | 2020.01.29 |
[백준] 11050번 이항계수 1 (0) | 2020.01.28 |
[백준] 1065번 한수 (0) | 2020.01.28 |