Symmetric Ternary Number

Time Limit : 1 sec, Memory Limit : 65536 KB

対称3進数

1 グラム、3 グラム、9 グラム、27 グラムのおもりが1つずつあれば、天びんを使って 1 グラムから 40グラムまで 1 グラム刻みで量れることが知られています。たとえば、天びんの一方の皿に重さを量りたいものと 3 グラムのおもりを載せ、もう一方の皿に 27 グラムと 1 グラムのおもりを載せて釣り合えば、量りたいものの重さは 27-3+1=25 グラムだとわかります。 さらに、1(=30)グラム、31 グラム、... 、3n-1 グラム、3n グラムまでのおもりが1つずつあれば、天びんを使って(3n+1-1)/2グラムまで量れることが知られています。また、天びんが釣り合うようなおもりの置き方は一通りしかないことも知られています。

量りたいものとおもりを天びんに置いて、釣り合うようなおもりの置き方を文字列で表すことができます。3i グラムのおもりを量りたいものと同じ皿に載せたときは「-」、もう一方の皿に載せたときは「+」、どちらにも載せなかったときは「0」を文字列の右端からi番目に書きます(右端を0番目と数えます)。たとえば、先ほどの 25 グラムの例は +0-+ と表わせます。

それでは、量りたいものの重さが与えられたとき、天びんが釣り合うようなおもりの置き方を表す文字列を出力するプログラムを作成してください。ただし、3のべき乗グラムのおもりは、どのような重さのものでも必ず1つあるものとします。

(補足: 対称3進数について)
量りたいものの重さがwのとき、おもりの置き方を表す文字列はwの対称3進数になっています。対称3進数とは、3のべき乗の数で位取りを行い、各位に数 1、0、-1 を表す文字を書くことで表した数のことです。上の文字列では、文字「+」、「0」、「-」がそれぞれ数 1、0、-1 に対応します。たとえば、25 グラムのものを量るときのおもりの置き方が +0-+ である対称3進数が表す数は、1 × 33 + 0 × 32 - 1× 31 + 1 × 30 = 25 となります。

入力

入力は以下の形式で与えられる。

w

w (1 ≤ w ≤ 100000) は量りたいものの重さを表す整数である。

出力

おもりの置き方を表す文字列を出力する。ただし文字列の左端を 0 にしてはならない。

入出力例

入力例1

25

出力例1

+0-+

入力例2

2

出力例2

+-

入力例3

5

出力例3

+--

Source: PC Koshien 2014 , All-Japan High School Programming Contest, Aizu-Wakamatsu, Japan, 2014-11-8
http://web-ext.u-aizu.ac.jp/pc-concours/