結果

問題 No.3143 Colorless Green Parentheses Sleep Furiously
ユーザー magurofly
提出日時 2025-05-16 21:42:22
言語 Ruby
(3.4.1)
結果
RE  
実行時間 -
コード長 755 bytes
コンパイル時間 812 ms
コンパイル使用メモリ 7,972 KB
実行使用メモリ 18,360 KB
最終ジャッジ日時 2025-05-17 00:23:36
合計ジャッジ時間 8,912 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 48 RE * 1
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

N, K = gets.split.map(&:to_i)
S = gets.chomp

stack = []
current = []
level = 0
S.each_char do |c|
	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
0