BOJ15658 연산자 끼워넣기 2

randi65535·2020년 12월 5일
0
import sys
input = sys.stdin.readline

minn = 1e9
maxx = -1e9
def recur(depth, prev_result, plus, minus, mul, div):
	global minn
	global maxx
	if depth == N:
		minn = min(minn, prev_result)
		maxx = max(maxx, prev_result)
		return

	if plus:
		recur(depth+1, prev_result+elem[depth], plus-1, minus, mul, div)
	if minus:
		recur(depth+1, prev_result-elem[depth], plus, minus-1, mul, div)
	if mul:
		recur(depth+1, prev_result*elem[depth], plus, minus, mul-1, div)	
	if div:
		recur(depth+1, int(prev_result/elem[depth]), plus, minus, mul, div-1)
			

N = int(input().strip())
elem = list(map(int, input().strip().split()))
opers = list(map(int, input().strip().split()))

recur(1, elem[0], opers[0], opers[1], opers[2], opers[3])
print(maxx)
print(minn)
profile
unsinged int 8byte-1

0개의 댓글