#agc044c. [agc044_c]Strange Dance

[agc044_c]Strange Dance

题目描述

3N3^N 个人在圆环上跳舞。我们用 0,1,dots,3N10,1,\\dots, 3^{N}-1 来表示圆环中的位置,从任意一个位置开始,顺时针方向绕圈。初始时,圆环上的每个位置都有一个人。

这些人将跳两种舞蹈:salsa 和 rumba。

  • 当播放 salsa 时,位于位置 ii 的人移动到位置 jj,其中 jj 是将 ii 按照三进制读法,将所有的数字 11 替换为 22,将所有的数字 22 替换为 11 得到的数(例如,位于位置 4646 的人移动到位置 6565)。
  • 当播放 rumba 时,位于位置 ii 的人移动到位置 i+1i+1(如果 i+1=3Ni+1 = 3^N,则位置 3N3^N 等于位置 00)。

给定一个字符串 T=T1T2cdotsTTT=T_1T_2\\cdots T_{|T|},其中 Ti=T_i=S 表示第 ii 首歌曲是 salsa,Ti=T_i=R 表示是 rumba。在所有歌曲播放完毕后,初始时位于位置 ii 的人将位于位置 PiP_i。计算数组 P0,P1,dots,P3N1P_0,P_1,\\dots, P_{3^N-1}

约束条件

  • 1leNle121 \\le N \\le 12
  • 1leTle200,0001 \\le |T| \\le 200,000
  • TT 只包含字符 SR

输入

从标准输入获取输入,具体格式如下:

NN TT

输出

你需要打印到标准输出中:

P0P_0 P1P_1 cdots\\cdots P3N1P_{3^N-1}


示例输入 1

1
SRS

示例输出 1

2 0 1 

在播放任何歌曲之前,位置是:001122

当我们说“第 ii 个人”时,我们指的是“初始时位于位置 ii 的人”。

  1. 在第一首 salsa 播放后,位置是:002211
  2. 在 rumba 播放后,位置是:110022(因此,第 00 个人位于位置 11,第 11 个人位于位置 00,第 22 个人位于位置 22)。
  3. 在第二首 salsa 播放后,位置是:220011(因此,第 00 个人位于位置 22,第 11 个人位于位置 00,第 22 个人位于位置 11)。

示例输入 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