따라서 같은 값을 가지는 index 하나는 무조건 있으니 그것을 두개 찾아서 괄호 안에 본래의 연산을 해주고 나머지는 *로 묶으면 됩니다.
코드
import sys
input=sys.stdin.readline
n = int(input())
l = list(map(int, input().split()))
flag = True
s = l[0]
d = {l[0]:0}
for i in range(1, n):
if s > 0:
s -= l[i]
try:
x1 = d[s]
x2 = i
break
except:
d[s] = i
elif s < 0:
s += l[i]
try:
x1 = d[s]
x2 = i
break
except:
d[s] = i
elif s == 0:
flag = False
x1 = i
break
print('YES')
if flag:
if s > 0:
s *= -1
for i in range(x1):
print(f'{l[i]}*', end='')
print(f'{l[x1]}*(',end='')
for i in range(x1+1, x2+1):
if s > 0:
s -= l[i]
print(f'-{l[i]}', end='')
else:
s += l[i]
if i == x1+1:
print(l[i], end ='')
else:
print(f'+{l[i]}', end='')
if x2+1 == n:
print(')')
else:
print(')*', end='')
for i in range(x2+1,n-1):
print(f'{l[i]}*', end='')
print(l[n-1])
else:
s = l[0]
print(f'({l[0]}', end='')
for i in range(1, x1):
if s > 0:
s -= l[i]
print(f'-{l[i]}', end='')
else:
s += l[i]
if i == x1+1:
print(l[i], end ='')
else:
print(f'+{l[i]}', end='')
print(')' ,end = '')
for i in range(x1, n):
print(f'*{l[i]}', end='')