p.349
permutations로 풀려다가 시간 초과가 나서 dfs로 변경 ㅠㅠㅠ
import sys
input=sys.stdin.readline
n=int(input())
num=list(map(int, input().split()))
add,sub,mul,div=map(int, input().split()) # 연산자 받기
max_result=-1e9
min_result=1e9
def dfs(i, temp, add, sub, mul, div):
global max_result, min_result
if i==n:
max_result=max(temp, max_result)
min_result=min(temp, min_result)
else:
if add:
dfs(i+1, temp+num[i], add-1, sub, mul, div)
if sub:
dfs(i+1, temp-num[i], add, sub-1, mul, div)
if mul:
dfs(i+1, temp*num[i], add, sub, mul-1, div)
if div:
dfs(i+1, int(temp/num[i]), add, sub, mul, div-1)
dfs(1, num[0], add, sub, mul, div)
print(max_result)
print(min_result)
댓글