結果

問題 No.3143 Colorless Green Parentheses Sleep Furiously
ユーザー pitP
提出日時 2025-05-16 21:52:45
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
WA  
実行時間 -
コード長 1,067 bytes
コンパイル時間 156 ms
コンパイル使用メモリ 12,288 KB
実行使用メモリ 21,176 KB
最終ジャッジ日時 2025-05-17 00:25:34
合計ジャッジ時間 7,675 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 19 WA * 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 <= mx:
    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')
    if L == 2:
        ans = ['1+'] + ans + ['+1']
    if L == 1:
        ans = ['1+'] + ans
    print("".join(ans))
else:
    print("No")
0