import math
def dfs(pl, mi, mu, di, deph, x):
global _max, _min
if pl + mi + mu + di == 0:
_max = max(_max, x)
_min = min(_min, x)
return
if pl:
dfs(pl-1, mi, mu, di, deph+1, x + n_list[deph+1])
if mi:
dfs(pl, mi-1, mu, di, deph+1, x - n_list[deph+1])
if mu:
dfs(pl, mi, mu-1, di, deph+1, x * n_list[deph+1])
if di:
if x >= 0:
dfs(pl, mi, mu, di-1, deph+1, x // n_list[deph+1])
else:
dfs(pl, mi, mu, di-1, deph+1, -(-x // n_list[deph+1]))
n = int(input())
n_list = [int(v) for v in input().split()]
giho = [int(v) for v in input().split()]
_max = -math.inf
_min = math.inf
dfs(giho[0], giho[1], giho[2], giho[3], 0, n_list[0])
print(_max)
print(_min)
+, -, *, %의 횟수가 숫자로 주어지므로 dfs는 각각의 기호를 하나씩 빼면서 진행된다.. 종료 조건은 4개의 기호가 모두 0이 될 때이다.