結果
| 問題 |
No.3143 Colorless Green Parentheses Sleep Furiously
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-05-16 21:43:52 |
| 言語 | Ruby (3.4.1) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 795 bytes |
| コンパイル時間 | 600 ms |
| コンパイル使用メモリ | 8,100 KB |
| 実行使用メモリ | 18,744 KB |
| 最終ジャッジ日時 | 2025-05-17 00:24:02 |
| 合計ジャッジ時間 | 9,046 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 48 RE * 1 |
コンパイルメッセージ
Syntax OK
ソースコード
N, K = gets.split.map(&:to_i)
S = gets.chomp
stack = []
current = []
level = 0
S.each_char do |c|
unless current
puts "No"
exit
end
case c
when ?(
level += 1
stack << current
inner = []
current << inner
current = inner
when ?)
level -= 1
if level < 0
puts "No"
exit
end
current = stack.pop
end
end
if level != 0
puts "No"
exit
end
def dfs(ans, current)
min = 0
case current.size
when 0
ans << "1+1"
min += 2
when 1
ans << "("
min += dfs(ans, current[0])
ans << ")+1"
min += 1
else
ans << "("
min += dfs(ans, current[0])
current[1 ..].each do |inner|
ans << ")+("
min += dfs(ans, inner)
end
ans << ")"
end
min
end
ans = ""
min = dfs(ans, current)
if min > K
puts "No"
exit
end
puts "Yes"
ans << "+1" * (K - min)
puts ans