#B4249. [语言月赛 202503] 洗牌

[语言月赛 202503] 洗牌

题目描述

Alice 把 2n2n 张扑克牌牌面朝下叠成一摞,并记住了从上到下每张扑克牌的种类(使用一个字符串表示)。之后,她将这摞牌交给 Bob 进行洗牌。

Bob 接过牌后,采用一种特殊的洗牌方式:

  1. 首先,他从上到下取出前 nn 张牌划分为左堆,剩下的 nn 张牌划分为右堆
  2. 之后,他设定一个新的牌堆,并做 2n2n 次操作。每次操作中,他随机从左堆或右堆的顶部取出一张牌,并放到新的牌堆的顶部

虽然 Bob 费尽心思洗牌,但 Alice 依然能记住洗好的牌中每张牌是来自左堆还是右堆。她用一个字符串 f f (下标从 11 开始)记录了这个信息,其中:

  • fi=L f_i = \texttt{L} 表示新牌堆中从上到下第 i i 张牌来自左堆
  • fi=R f_i = \texttt{R} 表示新牌堆中从上到下第 i i 张牌来自右堆

接下来,Bob 按顺序发牌:从洗好的牌堆顶部开始,他交替地把每张牌发给 Alice 和自己,第一张给 Alice,第二张给自己,第三张再给 Alice,以此类推。

你的任务是计算出 Alice 最终拿到的所有牌,并按她拿到牌的顺序输出。

输入格式

输入共三行。

第一行一个整数 nn,代表扑克牌一共有 2n2n 张。
第二行 2n2n 个字符串,代表初始时从上到下每张扑克牌的种类。相邻字符串之间使用一个逗号隔开。
第三行一个长度为 2n2n 的字符串 ff,由 L,R\texttt{L,R} 组成,代表 Alice 记住的洗牌顺序。

输出格式

输出 nn 行,每行一个字符串,代表 Alice 拿到的所有牌。你需要按照 Alice 拿到牌的顺序从前到后输出。

输入数据 1

4
A1,B2,C3,D4,E5,F6,G7,H8
LRRLRLRL

输出数据 1

D4
C3
B2
E5

输入数据 2

4
1,2,1,2,1,2,1,2
LRRLRLRL

输出数据 2

2
1
2
1

输入数据 3

10
tLWd,V,72r,t,4o1Q,1AO,FPul,9,g,REF,m8Lb2,V23m,LbzH,Oc6a,th,6,E7u,KHSdt,vEjtU,TQy
RRLRLRRLRLRLLRLLLRRL

输出数据 3

REF
vEjtU
9
KHSdt
4o1Q
t
72r
Oc6a
LbzH
V23m

提示

样例 1 解释

初始时牌堆中牌的种类从上到下依次为:A1,B2,C3,D4,E5,F6,G7,H8\texttt{A1,B2,C3,D4,E5,F6,G7,H8}

Bob 将其分为左右两堆,两堆中的牌的种类从上到下依次为:

  • 左堆:A1,B2,C3,D4\texttt{A1,B2,C3,D4}
  • 右堆:E5,F6,G7,H8\texttt{E5,F6,G7,H8}

在洗牌过程中,左堆、右堆、新的牌堆中从上到下牌的种类如下表所示:

操作次数 左堆(从上到下) 右堆(从上到下) 新的牌堆(从上到下)
初始 A1,B2,C3,D4\texttt{A1,B2,C3,D4} E5,F6,G7,H8\texttt{E5,F6,G7,H8}
11L\texttt{L} B2,C3,D4\texttt{B2,C3,D4} A1\texttt{A1}
22R\texttt{R} F6,G7,H8\texttt{F6,G7,H8} E5,A1\texttt{E5,A1}
33R\texttt{R} G7,H8\texttt{G7,H8} F6,E5,A1\texttt{F6,E5,A1}
44L\texttt{L} C3,D4\texttt{C3,D4} B2,F6,E5,A1\texttt{B2,F6,E5,A1}
55R\texttt{R} H8\texttt{H8} G7,B2,F6,E5,A1\texttt{G7,B2,F6,E5,A1}
66L\texttt{L} D4\texttt{D4} C3,G7,B2,F6,E5,A1\texttt{C3,G7,B2,F6,E5,A1}
77R\texttt{R} H8,C3,G7,B2,F6,E5,A1\texttt{H8,C3,G7,B2,F6,E5,A1}
88L\texttt{L} D4,H8,C3,G7,B2,F6,E5,A1\texttt{D4,H8,C3,G7,B2,F6,E5,A1}

最终新的牌堆为:D4,H8,C3,G7,B2,F6,E5,A1\texttt{D4,H8,C3,G7,B2,F6,E5,A1}

按照发牌规则,第 1,3,5,71, 3, 5, 7 张牌应当给予 Alice,因此 Alice 最终拿到的牌从前到后依次是 D4,C3,B2,E5\texttt{D4,C3,B2,E5}

数据规模与约定

本题共 1010 个测试点。对于 100%100\% 的数据,1n1001\le n\le 100。表示牌的种类字符串长度不超过 55,且仅会出现大小写字母和/或数字。ffL\texttt{L}R\texttt{R} 的出现次数相同。

测试点编号 nn 特殊性质
11 =1=1
2,32, 3 10\leq 10
44 100\leq 100 所有代表牌种类的字符串相同
55 ff 的前 nn 个字符一定是 L\texttt{L},后 nn 个字符一定是 R\texttt{R}
66 ff 的前 nn 个字符一定是 R\texttt{R},后 nn 个字符一定是 L\texttt{L}
77 ffL,R\texttt{L,R} 交替构成(即 f1,f3,f5,=Lf_1, f_3, f_5, \cdots = \texttt{L}f2,f4,f6,=Rf_2, f_4, f_6, \cdots = \texttt{R}
8108 \sim 10