题目描述
Alice 把 2n 张扑克牌牌面朝下叠成一摞,并记住了从上到下每张扑克牌的种类(使用一个字符串表示)。之后,她将这摞牌交给 Bob 进行洗牌。
Bob 接过牌后,采用一种特殊的洗牌方式:
- 首先,他从上到下取出前 n 张牌划分为左堆,剩下的 n 张牌划分为右堆;
 
- 之后,他设定一个新的牌堆,并做 2n 次操作。每次操作中,他随机从左堆或右堆的顶部取出一张牌,并放到新的牌堆的顶部。
 
虽然 Bob 费尽心思洗牌,但 Alice 依然能记住洗好的牌中每张牌是来自左堆还是右堆。她用一个字符串 f(下标从 1 开始)记录了这个信息,其中:
- fi=L 表示第 i 次操作选择的牌来自左堆;
 
- fi=R 表示第 i 次操作选择的牌来自右堆。
 
接下来,Bob 按顺序发牌:从洗好的牌堆顶部开始,他交替地把每张牌发给 Alice 和自己,第一张给 Alice,第二张给自己,第三张再给 Alice,以此类推。
你的任务是计算出 Alice 最终拿到的所有牌,并按她拿到牌的顺序输出。
输入格式
输入共三行。
第一行一个整数 n,代表扑克牌一共有 2n 张。
第二行 2n 个字符串,代表初始时从上到下每张扑克牌的种类。相邻字符串之间使用一个逗号隔开。
第三行一个长度为 2n 的字符串 f,由 L,R 组成,代表 Alice 记住的洗牌顺序。
输出格式
输出 n 行,每行一个字符串,代表 Alice 拿到的所有牌。你需要按照 Alice 拿到牌的顺序从前到后输出。
4
A1,B2,C3,D4,E5,F6,G7,H8
LRRLRLRL
D4
C3
B2
E5
4
1,2,1,2,1,2,1,2
LRRLRLRL
2
1
2
1
10
tLWd,V,72r,t,4o1Q,1AO,FPul,9,g,REF,m8Lb2,V23m,LbzH,Oc6a,th,6,E7u,KHSdt,vEjtU,TQy
RRLRLRRLRLRLLRLLLRRL
REF
vEjtU
9
KHSdt
4o1Q
t
72r
Oc6a
LbzH
V23m
提示
样例 1 解释
初始时牌堆中牌的种类从上到下依次为:A1,B2,C3,D4,E5,F6,G7,H8。
Bob 将其分为左右两堆,两堆中的牌的种类从上到下依次为:
- 左堆:A1,B2,C3,D4;
 
- 右堆:E5,F6,G7,H8。
 
在洗牌过程中,左堆、右堆、新的牌堆中从上到下牌的种类如下表所示:
| 操作次数 | 
左堆(从上到下) | 
右堆(从上到下) | 
新的牌堆(从上到下) | 
| 初始 | 
A1,B2,C3,D4 | 
E5,F6,G7,H8 | 
空 | 
| 1(L) | 
B2,C3,D4 | 
A1 | 
| 2(R) | 
F6,G7,H8 | 
E5,A1 | 
| 3(R) | 
G7,H8 | 
F6,E5,A1 | 
| 4(L) | 
C3,D4 | 
B2,F6,E5,A1 | 
| 5(R) | 
H8 | 
G7,B2,F6,E5,A1 | 
| 6(L) | 
D4 | 
C3,G7,B2,F6,E5,A1 | 
| 7(R) | 
空 | 
H8,C3,G7,B2,F6,E5,A1 | 
| 8(L) | 
空 | 
D4,H8,C3,G7,B2,F6,E5,A1 | 
最终新的牌堆为:D4,H8,C3,G7,B2,F6,E5,A1。
按照发牌规则,第 1,3,5,7 张牌应当给予 Alice,因此 Alice 最终拿到的牌从前到后依次是 D4,C3,B2,E5。
数据规模与约定
本题共 10 个测试点。对于 100% 的数据,1≤n≤100。表示牌的种类字符串长度不超过 5,且仅会出现大小写字母和/或数字。f 中 L 和 R 的出现次数相同。
| 测试点编号 | 
n | 
特殊性质 | 
| 1 | 
=1 | 
无 | 
| 2,3 | 
≤10 | 
| 4 | 
≤100 | 
所有代表牌种类的字符串相同 | 
| 5 | 
f 的前 n 个字符一定是 L,后 n 个字符一定是 R | 
| 6 | 
f 的前 n 个字符一定是 R,后 n 个字符一定是 L | 
| 7 | 
f 为 L,R 交替构成(即 f1,f3,f5,⋯=L,f2,f4,f6,⋯=R) | 
| 8∼10 | 
无 |