반응형
문제 : https://www.acmicpc.net/problem/15651
서론
N과 M (1)번 문제에서 중복 되면 안되는 조건이 빠졌는데, 마찬가지로 코드에서도 중복조건을 주석처리하면 끝난다.
나와 다른 방향으로 푼 사람들을 위한건지 문제의 의도를 잘 모르겠다.
아이디어
N과 M (1)을 풀고 난 후 중복조건을 주석처리하면 된다.
N과 M (1) : https://hydroponicglass.tistory.com/64
구현
//c++
#pragma warning(disable:4996)
#include <iostream>
#include <cstdio>
int n, m;
int visited[9];
int seq[9];
void dfs(int value, int idx) {
//std::cout << value << " " << idx << std::endl;
//if (visited[value] == 1) return;
seq[idx] = value;
if (idx == m) {
for (int i = 1; i <= m; i++) printf("%d ", seq[i]);
printf("\n");
return;
}
//visited[value] = 1;
for (int i = 1; i <= n; i++) {
dfs(i, idx + 1);
}
//visited[value] = 0;
return;
}
int main() {
scanf("%d %d", &n, &m);
dfs(0, 0);
}
최근댓글