#autumnfest07. [autumn_fest_07]Bit Map
[autumn_fest_07]Bit Map
配点
満点
110
部分点
30
問題文
1変数関数が与えられる。与えられた関数を等価な50文字以下の表現で書きなおせ。
ただしこの問題で関数 と が等価であるとは、任意の に対して が成り立つことをいう。
入力形式
入力は以下の形式で与えられる。
definition1 definition2 ... definition
は定義する関数の個数である。
definitionは全て以下のBNFに従う。
で使われる"&"、"|"、"^"はそれぞれビット演算のand、or、xorを表す。
で使われる"^"は関数の合成 を表す。
非負整数 に対して は次のように定義される。
関数の定義は上から行われる。定義式の右辺にその時点で未定義な他の関数や、定義しているその関数自身が現れることはない。また、既に定義された関数を新たに定義しなおすこともない。
定義される全ての関数は50文字以下の等価な表現を持つことが保証されている。
出力形式
関数を与えられた順に等価な表現で1行ごとに出力せよ。
各行毎に出力される文字列は50文字を越えてはならない。
出力は以下のBNFにしたがう必要がある。
入力が従うBNFと異なり、ある関数の表現に他の関数を用いてはならないことに注意せよ。
制約
- |definitioni|
この問題の判定には、 点分のテストケースのグループが設定されている。 このグループに含まれるテストケースは上記の制約に加えて下記の制約も満たす。
入力例 1
出力例 1
もちろんこれ以外にも様々な表現がある。例えば
出力例 2
Writer: komiya
Source Name
Autumn Fest