結果

問題 No.3143 Colorless Green Parentheses Sleep Furiously
ユーザー june19312
提出日時 2025-05-16 22:37:49
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 2,508 bytes
コンパイル時間 255 ms
コンパイル使用メモリ 82,688 KB
実行使用メモリ 114,816 KB
最終ジャッジ日時 2025-05-17 00:33:35
合計ジャッジ時間 7,830 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 20 WA * 29
権限があれば一括ダウンロードができます

ソースコード

diff #

N,K = map(int,input().split())
S = input()

a,b,c = 0,0,0
for i,v in enumerate(S):
    if i == len(S)-1:
        continue
    if S[i] == "(" and S[i+1] == "(":
        a += 1

for i,v in enumerate(S):
    if i == len(S)-1:
        continue
    if S[i] == ")" and S[i+1] == ")":
        c += 1

for i,v in enumerate(S):
    if i == len(S)-1:
        continue
    if S[i] == "(" and S[i+1] == ")":
        b += 1

if not b*2 + a <= K <= b*2 + a + 2:
    print("No")
    exit()

nokori = K - (b*2+a)
SS = list(S)
ans = []
while SS:
    if len(SS) >= 2:
        if SS[-2] == "(" and SS[-1] == ")":
            ans.append("(")
            ans.append("1")
            ans.append("+")
            ans.append("1")
            ans.append(")")
            SS.pop()
            SS.pop()
        else:
            nex = SS.pop()
            if nex == "(":
                ans.append(")")
            else:
                ans.append("(")
    else:
            nex = SS.pop()
            if nex == "(":
                ans.append(")")
            else:
                ans.append("(")

SS = ans[:]

ans = []
while SS:
    if len(SS) >= 2:
        if SS[-2] == ")" and SS[-1] == ")":
            ans.append("(")
            ans.append("1")
            ans.append("+")
            ans.append("(")
            SS.pop()
            SS.pop()
#        elif SS[-2] == "(" and SS[-1] == "(" and nokori > 0:
#            ans.append(")")
#            ans.append("+")
#            ans.append("1")
#            ans.append(")")
#            SS.pop()
#            SS.pop()
#            nokori -= 1
        else:
            nex = SS.pop()
            if nex == "(":
                ans.append(")")
            elif nex == ")":
                ans.append("(")
            else:
                ans.append(nex)
    else:
            nex = SS.pop()
            if nex == "(":
                ans.append(")")
            elif nex == ")":
                ans.append("(")
            else:
                ans.append(nex)

SS = ans[:]

ans = []
while SS:
    if len(SS) >= 2:
        if SS[-2] == ")" and SS[-1] == "(":
            ans.append("(")
            ans.append("+")
            ans.append(")")
            SS.pop()
            SS.pop()
        else:
            nex = SS.pop()
            ans.append(nex)
    else:
            nex = SS.pop()
            ans.append(nex)

ans.reverse()

if nokori == 1:
    ans.append("+1")
elif nokori == 2:
    ans = ["1+"] + ans
    ans.append("+1")

ans2 = "".join(ans)
print("Yes")
print(ans2)
0