E - ショートコーディング
Editorial
/
Time Limit: 2 sec / Memory Limit: 256 MB
問題文
ショートコーディングコンテスト「短縮王」は、いかに短いコードで問題を解けるかを競うコンテストです。短縮王に参加する前に、まずはウォーミングアップをしてみましょう。
以下のようなプログラミング言語「!-! 言語」を考えます。
- プログラムは、単項演算子
-
,!
が 0 個以上並んだ文字列として記述される。 - プログラムはちょうど 1 つの -256 以上 256 以下の整数を入力として受け取り、入力値に単項演算子を 後ろから順に 適用して演算を行い、最終的な値を出力する。
-
単項演算子はそれぞれ以下のような計算を行う。
-
:値の正負を反転させる。例えば 29 を -29 に、-89 を 89 に、0 を 0 にする。!
:0 なら 1 に、0 以外なら 0 にする。例えば 29 を 0 に、-89 を 0 に、0 を 1 にする。
例えば、!-!-
というプログラムに 5 を入力として与えた場合は以下のように動作します。
- 後ろから 1 個目の演算子は
-
であり、5 が -5 になります。 - 後ろから 2 個目の演算子は
!
であり、-5 が 0 になります。 - 後ろから 3 個目の演算子は
-
であり、0 が 0 になります。 - 後ろから 4 個目の演算子は
!
であり、0 が 1 になります。 - 1 を出力して終了します。
!-! 言語のプログラムが与えられるので、-256 以上 256 以下の全ての整数の入力に対して同じ結果を出力する最も短い !-! 言語のプログラムを出力してください。
入力
入力は以下の形式で標準入力から与えられる。
S
- 1 行目には、短縮するコードを表す文字列 S (1 ≦ |S| ≦ 256) が与えられる。S は
-
と!
のみからなる文字列であることが保証される。
出力
与えられたプログラムと同じ結果を出力する最も短いプログラムを 1 行に出力せよ。最も短いプログラムが複数ある場合はいずれを出力しても構わない。出力の末尾に改行を入れること。
入力例1
---!!-!--
出力例1
-!
入力例2
!!
出力例2
!!
入力例3
----------
出力例3
(空文字列)
空文字列もプログラムとして正しいです。なお、答えが空文字列の場合も末尾に改行を出力すること。