제목에 적힌 문제이고, 완전 탐색으로 풀이가 가능한 문제입니다.
재귀를 이용한 완전 탐색으로 풀었습니다.
N, K = map(int, input().split())
kit = list(map(int, input().split()))
chk = [0]*N
result = 0
def f(k, weight):
global result
# Backtracking
if weight < 0:
return
if k >= N:
result += 1
return
for i in range(N):
if chk[i] == 0:
chk[i] = 1
f(k+1, weight+kit[i]-K)
chk[i] = 0
f(0, 0)
print(result)