1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #include <stdio.h> #include <string.h> #include <vector> using namespace std; int arr[20] = { 0 }; int check[20] = { 0 }; int n; void DFS(int idx, int len, vector<int> v); int main() { while (1) { scanf("%d", &n); getchar(); if (n == 0) break; for (int i = 1; i <= n; i++) { scanf("%d", &arr[i]); } vector<int> rst; for (int i = 1; i <= n; i++) { DFS(i, 1, rst); } printf("\n"); memset(arr, 0, sizeof(int) * 20); } } void DFS(int idx, int len, vector<int> v) { v.push_back(arr[idx]); if (len == 6) { for (int i = 0; i < v.size(); i++) { printf("%d ", v[i]); } printf("\n"); return; } for (int i = idx+1; i < n+1; i++) { DFS(i, len + 1, v); } } | cs |
'알고리즘 > DFS' 카테고리의 다른 글
| 1987 알파벳 (0) | 2019.08.01 |
|---|---|
| 1389 케빈 베이컨의 6단계 법칙 (0) | 2019.08.01 |
| 2583 영역 구하기 (0) | 2019.07.30 |
| 10026 적록색약 (0) | 2019.07.30 |
| 11724 연결요소의 갯수 (0) | 2019.07.30 |