#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
while (true) {
int n;
cin >> n;
if (n == 0) {
break;
}
vector<int> a(n);
for (int i=0; i<n; i++) {
cin >> a[i];
}
vector<int> d;
for (int i=0; i<n-6; i++) {
d.push_back(0);
}
for (int i=0; i<6; i++) {
d.push_back(1);
}
vector<vector<int>> ans;
do {
vector<int> current;
for (int i=0; i<n; i++) {
if (d[i] == 1) {
current.push_back(a[i]);
}
}
ans.push_back(current);
} while (next_permutation(d.begin(), d.end()));
sort(ans.begin(), ans.end());
for (auto &v : ans) {
for (int i=0; i<v.size(); i++) {
cout << v[i] << ' ';
}
cout << '\n';
}
cout << '\n';
}
return 0;
}
'Problem set' 카테고리의 다른 글
[백준] 1759 암호 만들기 (0) | 2021.02.20 |
---|---|
[백준] 9095 1, 2, 3 더하기 (0) | 2021.02.20 |
[백준] 10971 외판원 순회 2 (0) | 2021.01.21 |
[백준] 10819 차이를 최대로 (0) | 2021.01.21 |
[백준] 10974 모든 순열 (0) | 2021.01.21 |