B - BNF Backup
Editorial
/
/
Time Limit: 2 sec / Memory Limit: 2048 MiB
配点 : 100 点
どこかの国のプログラミングコンテストでは,木が複雑に出てくる数式を調べさせる問題が出題されたらしい.うさぎの国のプログラミングコンテストはもっと平和である.
問題文
値 0,二項演算 +,括弧 (, ) のみからなる数式を考える.正確には,本問において数式とは以下の BNF によって定義される <expression> とする:
<expression> ::= <term> | <expression> "+" <term>
<term> ::= "0" | "(" <expression> ")"
くろうさはある数式 s を隠し持っている.s の奇数文字目 (先頭を 1 文字目と数える) をすべて文字 _ で置き換えた文字列 T が与えられる.s としてあり得るものを 1 つ求めよ.
制約
- T は長さ 1 以上 10^6 以下の文字列である.
- ある数式 s が存在して,s の奇数文字目をすべて文字
_で置き換えると T になる.
入力
入力は以下の形式で標準入力から与えられる.
T
出力
s としてあり得るものを 1 つ出力せよ.
入力例 1
_0_0_
出力例 1
(0+0)
(0+0) が数式であることは次のようにわかる.
0は<term>であるから,<expression>でもある.0は<expression>であり,0は<term>であるから,0+0は<expression>である.0+0は<expression>であるから,(0+0)は<term>であり,よって<expression>でもある.
入力例 2
_(_(_)_)_
出力例 2
((((0))))