#include <stdio.h> #include <iostream> #include <set> #include <map> #include <queue> #include <vector> #include <string> #include <math.h> #include <algorithm> using namespace std; int N, S; int num[21]; int choice[21]; int ans; int check(int cnt) { int sum = choice[0]; for(int i = 1; i < cnt; i++) { sum += choice[i]; } if(sum == S) { return 1; } else { return 0; } } void combination(int idx, int cnt) { if(cnt > N) { return; } else if(cnt != 0) { if(check(cnt) == 1) { ans++; } } for(int i = idx; i < N; i++) { choice[cnt] = num[i]; combination(i+1, cnt+1); } } int main(void) { // freopen("B1182_input.txt", "r", stdin); cin >> N >> S; for(int i = 0; i < N; i++) { cin >> num[i]; } combination(0, 0); cout << ans; return 0; } | cs |
'Baekjoon > etc' 카테고리의 다른 글
[백준 1439] 뒤집기 (C/C++) (0) | 2019.12.30 |
---|---|
[백준 1253] 좋다 (C/C++) (0) | 2019.12.30 |
[백준 1145] 적어도 대부분의 배수 (C/C++) (0) | 2019.12.18 |
[백준 1065] 한수 (C/C++) (0) | 2019.12.18 |
[백준 1024] 수열의 합 (C/C++) (0) | 2019.12.17 |