algorithm

15663

cheesecrust1008 2022. 7. 14. 21:53
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;

int N;
int M;
vector<int> numbers;
int flag[8];
int answer[8];

void makeCombination(int cnt) {
if (cnt == M) {
for (int i = 0; i < M; i++) {
cout << answer[i] << ' ';
}

cout << '\n';
return;
}
int same = 0; // 함수 안에 두어야 같은 위상과 공유 된다.
for (int i = 0; i < numbers.size(); i++) {
if (flag[i] == 1 || numbers[i] == same) {
continue;
}
flag[i] = 1;
answer[cnt] = numbers[i];
same = answer[cnt];
// cout << same << '\n';
makeCombination(cnt + 1);
flag[i] = 0;
}
}

int main() {
cin >> N >> M;
numbers.resize(N);
for (int i = 0; i < N; i++) {
cin >> numbers[i];
}
sort(numbers.begin(), numbers.end());
makeCombination(0);
return 0;
}

'algorithm' 카테고리의 다른 글

Tree  (0) 2022.12.14
mergesort  (0) 2022.10.25
합병정렬  (0) 2022.03.06
퀵정렬  (0) 2022.03.06
버블정렬  (0) 2022.03.05