39.5m
import sys
input = sys.stdin.readline
n = int(input())
nums = list(map(int, input().split()))
ops = list(map(int, input().split()))
MIN = 1e9
MAX = -1e9
def solution(idx, res, op1, op2, op3, op4):
global MIN, MAX
if idx == n:
MIN = min(res, MIN)
MAX = max(res, MAX)
return
if op1 > 0:
solution(idx + 1, res + nums[idx], op1 - 1, op2, op3, op4)
if op2 > 0:
solution(idx + 1, res - nums[idx], op1, op2 - 1, op3, op4)
if op3 > 0:
solution(idx + 1, res * nums[idx], op1, op2, op3 - 1, op4)
if op4 > 0:
solution(idx + 1, int(res / nums[idx]), op1, op2, op3, op4 - 1)
solution(1, nums[0], ops[0], ops[1], ops[2], ops[3])
print(MAX)
print(MIN)
계속 미친 시간 초과가 났는데, 알고보니 중간에 포문을 한 번 돌렸더라...ㅎ..