-
[Algorithm] C++ 특정 수 만들기(DFS)Programming/Algorithm 2020. 1. 7. 13:26
입력예제 1
4 12
2 4 6 8
출력예제 1
4
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<vector> #include<algorithm> using namespace std; int a[11], n, m, cnt = 0; void DFS(int L, int val) { if (L == n + 1) { if (val == m) cnt++; } else { DFS(L + 1, val + a[L]); DFS(L + 1, val - a[L]); DFS(L + 1, val); } } int main() { int i; scanf("%d %d", &n, &m); for (i = 1; i <= n; i++) { scanf("%d", &a[i]); } DFS(1, 0); if (cnt == 0) printf("-1\n"); else printf("%d\n", cnt); return 0; }
'Programming > Algorithm' 카테고리의 다른 글
[Algorithm] 순열 (0) 2020.04.24 [Algorithm] 조합 (0) 2020.04.24 [Algorithm] C++ 합이 같은 부분집합(DFS) (0) 2020.01.06 [Algorithm] C++ 부분집합(DFS) (0) 2020.01.06 [Algorithm] C++ 기차운행(stack 응용) (0) 2020.01.03