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