結果
| 問題 |
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")