dfs를 통해 쉽게 풀 수 있으나, 답이 계속 오류가 떴다. 그 이유는 max값이 음수가 나올 수도 있는데, 처음에 max = 0으로 지정해줘서 뜨는 오류
n = int(input())
array = list(map(int, input().split()))
add, sub, mul, div = map(int, input().split())
mx = -int(1e9)
mi = int(1e9)
ans = array[0]
def dfs(result, count):
global mx, mi, add, sub, mul, div
if count == n-1:
mx = max(result, mx)
mi = min(result, mi)
return
if add > 0 :
add -= 1
dfs(result+array[count+1], count+1)
add += 1
if sub > 0 :
sub -= 1
dfs(result-array[count+1], count+1)
sub += 1
if mul > 0 :
mul -= 1
dfs(result*array[count+1], count+1)
mul += 1
if div > 0 :
div -= 1
dfs(int(result/array[count+1]), count+1)
div += 1
dfs(ans, 0)
print(mx)
print(mi)