[AGC044C] Strange Dance

题意翻译

有 $3^n$ 个人在绕圈圈跳舞。我们从任意一个人开始,给这些人环绕标号,记为 $0,1,\dots,3^n-1$。 现在有两种舞 : - Salasa 舞。第 $i$ 个人走向第 $j$ 个位置当且仅当他们的三进制表示,$1$ 对应 $2$,$2$ 对应 $1$。比如,46 可以走向 65,当然 65 也走向 46。 - Rumba 舞。所有人走向编号加 $1$ 的位置。如果等于 $3^n-1$,去 $0$ . 现在给你一个 T 序列表示以上两种舞。请问最后每个人站在哪里? $n \le 12$ , $|T| \le 2 \times 10^5$。

题目描述

[problemUrl]: https://atcoder.jp/contests/agc044/tasks/agc044_c $ 3^N $ 人の人が輪になって踊っています。 輪の中の人がいる位置に、$ 0,1,\dots,\ 3^{N}-1 $ の番号を、適当な場所から始めて時計回りに付けます。はじめ、これらの位置それぞれに一人の人が立っています。 これから二種類の曲、サルサとルンバが流れ、人々はそれに合わせて踊ります。 - サルサが流れたら、位置 $ i $ にいる人は以下で述べるような位置 $ j $ に移動します。$ j $ は、$ i $ を $ 3 $ 進法で表記し、$ 1 $ という桁をそれぞれ $ 2 $ に、$ 2 $ という桁をそれぞれ $ 1 $ に置き換えて得られる数です (例えば、位置 $ 46 $ の人は位置 $ 65 $ に移動します)。 - ルンバが流れたら、位置 $ i $ にいる人は位置 $ i+1 $ に移動します。ここで、位置 $ 3^N $ は位置 $ 0 $ とみなします。 文字列 $ T=T_1T_2\cdots\ T_{|T|} $ が与えられます。これは、$ T_i= $`S` なら $ i $ 番目に流れる曲がサルサであり、$ T_i= $`R` ならルンバであることを表します。 はじめ位置 $ i $ に立っていた人が、すべての曲が流れたあとに位置 $ P_i $ に立っているとします。 列 $ P_0,P_1,\dots,\ P_{3^N-1} $ を求めてください。

输入输出格式

输入格式


入力は標準入力から以下の形式で与えられる。 > $ N $ $ T $

输出格式


以下の形式で標準出力に出力せよ。 > $ P_0 $ $ P_1 $ $ \cdots $ $ P_{3^N-1} $

输入输出样例

输入样例 #1

1
SRS

输出样例 #1

2 0 1

输入样例 #2

2
RRSRSSSSR

输出样例 #2

3 8 1 0 5 7 6 2 4

输入样例 #3

3
SRSRRSRRRSRRRR

输出样例 #3

23 9 22 8 3 7 20 24 19 5 18 4 17 12 16 2 6 1 14 0 13 26 21 25 11 15 10

说明

### 制約 - $ 1\ \le\ N\ \le\ 12 $ - $ 1\ \le\ |T|\ \le\ 200,000 $ - $ T $ は `S`、`R` からなる。 ### Sample Explanation 1 最初の曲が流れる前に位置 $ i $ に立っていた人を人 $ i $ とします。 1. サルサが一度目に流れたあと、人 $ 0,\ 1,\ 2 $ はそれぞれ位置 $ 0,\ 2,\ 1 $ に立っています。 2. ルンバが流れたあと、人 $ 0,\ 1,\ 2 $ はそれぞれ位置 $ 1,\ 0,\ 2 $ に立っています。 3. サルサが二度目に流れたあと、人 $ 0,\ 1,\ 2 $ はそれぞれ位置 $ 2,\ 0,\ 1 $ に立っています。