結果
問題 |
No.3143 Colorless Green Parentheses Sleep Furiously
|
ユーザー |
|
提出日時 | 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 |
ソースコード
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")