#ijpc2015j. [ijpc2015_j]Верный
[ijpc2015_j]Верный
問題文
IOI2015の開催されたアルマトイは昔、Верный(ヴェールヌイ)という名前であった。
どうやらロシア語で「忠実な」とか「信頼できる」とかいった意味があるらしい。。
joisinoお姉ちゃんは、これを聞いて、部下が自分にいかに忠実かを試そうとした。
まず、木Xと木Yを用意した。各頂点はからまでの名前がついており、'a'から'j'までのどれかの小文字のアルファベットが一つ書かれている。
以下の操作を回行う。
- からまでの木X上のパス(,含む)上にあるアルファベット2つを入れ替える。
例えば、とを入れ替えると、パス上のはとなり、はとなる。 - からまでの木Y上のパス(,含む)上にあるアルファベット2つを入れ替える。
例えば、とを入れ替えると、パス上のはとなり、はとなる。 - 木Xのからまでのパス(,含む)上にあるアルファベットを並べた文字列と、木Yのからまでのパス(,含む)上にあるアルファベットを並べた文字列が完全に一致するか、そうでないかを答える。
- 回のクエリを実行した直後の状態に戻す。
ただし、(このクエリを処理する前に処理したクエリの数)≧≧とする。
制限
≦≦
≦≦
≦≦
配点
- この問題に部分点は存在しない。すべてのテストケースに正解すると点が得られる。
入力
入力は以下の形式で標準入力から与えられる。
木Xについてのデータ
木Yについてのデータ
.
.
.
始めに、木Xについてのデータが与えられる。
その次に、木Yについてのデータが与えられる。
その次に、クエリ数を指す整数が1行で与えられる。 その次の行は各クエリを意味する。
各木のデータは、以下の形式で与えられる。
.
.
.
データ内の1行目に、木の頂点数が整数で与えられる。
次の1行に、長さの文字列sが与えられる。この文字列の文字目(≦<)は、木の頂点iに書かれている小文字を指す。
次のN-1行の各行は、木の辺を意味する。
とは、頂点と頂点(<≦)の間に辺があることを意味する。
各クエリは1行から与えられる。 まず、初めにクエリの種類を指す整数が与えられる。
* が0の時
空白区切りでこの後に整数,と小文字,がこの順で与えられる。 これは、木Xの頂点,間のパス上の頂点(,含む)それぞれにおいて、が書かれている場合に、が書かれている場合に書き換えることを意味する。
* が1の時
空白区切りでこの後に整数,と小文字,がこの順で与えられる。 これは、木Yの頂点,間のパス上の頂点(,含む)それぞれにおいて、が書かれている場合に、が書かれている場合に書き換えることを意味する。
* が2の時
空白区切りでこの後に整数,と小文字,がこの順で与えられる。 これは、(木Xの頂点,間のパス上の頂点(,含む)に書かれている文字を、から順に並べたときの文字列)と(木Yの頂点,間のパス上の頂点(,含む)に書かれている文字を、から順に並べたときの文字列)が一致するかしないかを答えることを意味する。
* が3の時
空白区切りでこの後に整数が与えられる。 これは、木Xと木Yを、回クエリを処理した直後の状況に戻すことを意味する。
出力
それぞれのクエリにおいてが2のとき、文字列が一致する場合、一致しない場合を1行に出力せよ。
なお入力全体の最後には改行を忘れないこと。