페이지

1182번: 부분집합의 합

https://www.acmicpc.net/problem/1182


$O(2^n)$

모든 경우를 조사한다.


#include<cstdio>
int n, s, r, a[20];
int main() {
    scanf("%d %d", &n, &s);
    for (int i = 0; i < n; i++) scanf("%d", a + i);
    for (int i = 1; i < 1 << n; i++) {
        int t = 0;
        for (int j = 0; j < n; j++) if (i & 1 << j) t += a[j];
        r += s == t;
    }
    printf("%d", r);
    return 0;
}

댓글 없음 :

댓글 쓰기