結果

問題 No.3143 Colorless Green Parentheses Sleep Furiously
ユーザー pitP
提出日時 2025-05-16 21:59:15
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
WA  
実行時間 -
コード長 1,054 bytes
コンパイル時間 826 ms
コンパイル使用メモリ 12,416 KB
実行使用メモリ 109,280 KB
最終ジャッジ日時 2025-05-17 00:27:17
合計ジャッジ時間 9,300 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 18 WA * 1 RE * 30
権限があれば一括ダウンロードができます

ソースコード

diff #

N, K = map(int, input().split())
S = list(input())
A = [1 if S[i] == '(' else -1 for i in range(N)]

def c_problem():
    wa = 0
    for i in range(N):
        wa += A[i]
        if wa < 0:
            return False

    return wa == 0

if not c_problem():
    exit(print("No"))


lr = []
l = 0
wa = 0
for i in range(N):
    wa += A[i]
    if wa == 0:
        lr.append((l, i + 1))
        l = i + 1


mn = sum([(r - l) // 2 + 1 for l, r in lr])
# mx = sum([(r - l) for l, r in lr]) + 2
if mn <= K:
    L = K - mn
    print("Yes")
    ans = []
    for l, r in lr:
        if ans :
            ans.append('+')
        d = min((r - l) // 2 - 1, L)
        L -= d
        for i in range((r - l) // 2):
            ans.append(S[i + l])
            ans.append('1+')
        ans.append('1')
        for i in range((r - l) // 2):
            ans.append(S[i + (r + l) // 2])
            if i + 1 < d:
                ans.append('+1')
    for _ in range(L):
        ans.append('+1')

    assert eval("".join(ans)) == K
    print("".join(ans))
else:
    print("No")
0