practivceAlgorithm/백준
[백준][Python] 16938 캠프준비
findTheValue
2021. 9. 20. 14:38
평범한 조합문제입니다.
대신 조건에 만족하는 조합에서 return을 주면 그 후에 다른 수를 취하더라도 조건에 맞을 수 있는 경우가 걸러지기 때문에 return을 하면 안됩니다.
import sys
input = sys.stdin.readline
def dfs(idx, s, min_n, max_n):
global cnt
if L <= s <= R and max_n - min_n >= X:
cnt += 1
if s > R:
return
for next_idx in range(idx+1,N):
dfs(next_idx, s+arr[next_idx], min(min_n, arr[next_idx]), max(max_n, arr[next_idx]))
N, L, R, X = map(int, input().split())
arr = list(map(int, input().split()))
cnt = 0
dfs(-1, 0, float('inf'), 0)
print(cnt)