부분수열의 합

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

문제

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

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

입력

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

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

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

출력

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