부분수열의 합

면접 대비

시간 제한2초메모리 제한256 MB

요약
최대 20개의 정수로 이루어진 수열에서 합이 S가 되는 공집합이 아닌 부분수열의 개수를 구합니다.
난이도

보통10점 중 4점

유형
백트래킹, 완전 탐색, 배열
정답자
아직 제출이 없습니다

문제

N개의 정수로 이루어진 수열이 주어진다. 이 수열에서 한 개 이상의 원소를 골라 만든 부분수열 중, 고른 원소들의 합이 S가 되는 경우의 수를 구하라.

값이 같은 원소가 여러 개 있어도, 선택한 위치가 다르면 서로 다른 부분수열로 센다.

입력

첫째 줄에 정수의 개수 N과 목표 합 S가 주어진다.

  • 1 <= N <= 20
  • |S| <= 1,000,000

둘째 줄에는 N개의 정수가 공백으로 구분되어 주어진다. 각 정수의 절댓값은 100,000을 넘지 않는다.

출력

합이 S가 되는, 비어 있지 않은 부분수열의 개수를 출력한다.

예제1

  1. 예제 1

    입력
    5 0
    -7 -3 -2 5 8
    
    예상 출력
    1