Problem Solving/BOJ

[BOJ] 1182 : 부분집합의 합

shyram 2018. 12. 29. 23:50
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
#include <bits/stdc++.h>
using namespace std;
 
int arr[20];
int ans = 0;
int n, s;
void solve(int index, int sum) {
    //cout << sum << '\n';
    if (sum == s) ans++;
    if (index == n) return;
    for (int i = index; i < n; i++) {
        sum += arr[i];
        solve(i + 1, sum);
        sum -= arr[i];
    }
}
 
int main(void) {
    ios::sync_with_stdio(0);
    cin.tie(NULL);
    cin >> n >> s;
    for (int i = 0; i < n; i++cin >> arr[i];
    solve(00);
    if (s == 0) ans--;
    cout << ans;
}
cs