import sys
input = sys.stdin.readline
def dfs(cnt, result, p, m, mul, div):
global max_result
global min_result
if cnt == n:
max_result = max(max_result, result)
min_result = min(min_result, result)
return
if p:
dfs(cnt + 1, result + a[cnt], p - 1, m, mul, div)
if m:
dfs(cnt + 1, result - a[cnt], p, m - 1, mul, div)
if mul:
dfs(cnt + 1, result * a[cnt], p, m, mul - 1, div)
if div:
dfs(cnt + 1, -(-result // a[cnt]) if result < 0 else result // a[cnt], p, m, mul, div - 1)
n = int(input())#수
a = list(map(int, input().split())) #수열
operator = list(map(int, input().split())) #연산자
max_result = -1000000001
min_result = 1000000001
dfs(1, a[0], operator[0], operator[1], operator[2], operator[3])
print(max_result)
print(min_result)
'문제풀이 > 백준(Boj) 문제풀이' 카테고리의 다른 글
[백준][동적 계획법1] 1932. 정수 삼각형(파이썬/Python) (0) | 2021.09.13 |
---|---|
[백준][동적 계획법1] 1149. RGB거리(파이썬/Python) (0) | 2021.09.13 |
[백준][동적 계획법1] 9461. 파도반 수열 (파이썬/Python) (0) | 2021.09.12 |
[백준][동적 계획법1] 1904. 01타일 (파이썬/Python) (0) | 2021.09.10 |
[백준][동적 계획법1] 9184. 신나는 함수 실행 (파이썬/Python) (0) | 2021.09.10 |