salmon16   2년 전

예제 3번 케이스가 답이 이상하게 나오는데 

정답 코드를 봐도 똑같은거 같은데 틀린 부분을 잘 모르겠습니다.

젝 본 정답 코드

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 + s[cnt], p - 1, m, mul, div)
if m:
dfs(cnt + 1, result - s[cnt], p, m - 1, mul, div)
if mul:
dfs(cnt + 1, result * s[cnt], p, m, mul - 1, div)
if div:
dfs(cnt + 1, -(-result // s[cnt]) if result < 0 else result // s[cnt], p, m, mul, div - 1)
n = int(input())
s = list(map(int, input().split()))
op = list(map(int, input().split()))
max_result = -1000000001
min_result = 1000000001
dfs(1, s[0], op[0], op[1], op[2], op[3])
print(max_result)
print(min_result)

댓글을 작성하려면 로그인해야 합니다.