풀이
#include <iostream>
#include <vector>
using namespace std;
vector <int> SubSet;
vector <int> Seq(6);
int n;
int fnSolve(int idx,/* 고려하는 SubSet Index */
int cnt /* 선택한 갯수 */) {
if (idx > n) {
return 0;
}
if (cnt == 6) {
cout << Seq[0];
for (int i=1;i<6;i++) {
cout << " " << Seq[i];
}
cout << endl;
return 0;
}
// 현재 Index 를 선택
Seq[cnt] = SubSet[idx];
fnSolve(idx+1, cnt+1);
// 현재 Index 를 Skip
fnSolve(idx+1, cnt);
return 0;
}
int main() {
bool NewLineFlag = false;
while (cin >> n) {
if (n == 0) {
break;
}
// 마지막줄에 newLine 이 추가되지 않도록 주의
if (NewLineFlag == false) {
NewLineFlag = true;
} else {
cout << endl;
}
SubSet = vector<int>(n);
for (int i=0;i<n;i++) {
cin >> SubSet[i];
// cout << SubSet[i] << " ";
}
//cout << endl << endl;
fnSolve(0, 0);
cout << endl;
}
return 0;
}