restructure zeta/** to storage/zeta/**
This commit is contained in:
44
storage/zeta/py/completed/14888.py
Normal file
44
storage/zeta/py/completed/14888.py
Normal file
@@ -0,0 +1,44 @@
|
||||
N = int(input())
|
||||
ns = list(map(int, input().split()))
|
||||
ops = list(map(int, input().split()))
|
||||
|
||||
stack = []
|
||||
|
||||
traces = []
|
||||
|
||||
def calc(ind, a, b):
|
||||
if ind == 0:
|
||||
return a+b
|
||||
elif ind == 1:
|
||||
return a-b
|
||||
elif ind == 2:
|
||||
return a*b
|
||||
elif ind == 3:
|
||||
return int(a/b)
|
||||
|
||||
|
||||
_ops = ops[:]
|
||||
for i, v in enumerate(ops):
|
||||
if v == 0:
|
||||
pass
|
||||
else:
|
||||
_ops[i] = _ops[i] - 1
|
||||
stack.append((1, _ops, calc(i, ns[0], ns[1])))
|
||||
_ops = ops[:]
|
||||
|
||||
while stack:
|
||||
d, o, n = stack.pop()
|
||||
if not any(o):
|
||||
traces.append(n)
|
||||
else:
|
||||
_ops = o[:]
|
||||
for i, v in enumerate(o):
|
||||
if v == 0:
|
||||
pass
|
||||
else:
|
||||
_ops[i] = _ops[i] - 1
|
||||
stack.append((d+1, _ops, calc(i, n, ns[d+1])))
|
||||
_ops = o[:]
|
||||
|
||||
print(max(traces))
|
||||
print(min(traces))
|
||||
Reference in New Issue
Block a user