[语言月赛 202503] 洗牌
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
题目描述
Alice 把 张扑克牌牌面朝下叠成一摞,并记住了从上到下每张扑克牌的种类(使用一个字符串表示)。之后,她将这摞牌交给 Bob 进行洗牌。
Bob 接过牌后,采用一种特殊的洗牌方式:
- 首先,他从上到下取出前 张牌划分为左堆,剩下的 张牌划分为右堆;
- 之后,他设定一个新的牌堆,并做 次操作。每次操作中,他随机从左堆或右堆的顶部取出一张牌,并放到新的牌堆的顶部。
虽然 Bob 费尽心思洗牌,但 Alice 依然能记住洗好的牌中每张牌是来自左堆还是右堆。她用一个字符串 (下标从 开始)记录了这个信息,其中:
- 表示第 次操作选择的牌来自左堆;
- 表示第 次操作选择的牌来自右堆。
接下来,Bob 按顺序发牌:从洗好的牌堆顶部开始,他交替地把每张牌发给 Alice 和自己,第一张给 Alice,第二张给自己,第三张再给 Alice,以此类推。
你的任务是计算出 Alice 最终拿到的所有牌,并按她拿到牌的顺序输出。
输入格式
输入共三行。
第一行一个整数 ,代表扑克牌一共有 张。
第二行 个字符串,代表初始时从上到下每张扑克牌的种类。相邻字符串之间使用一个逗号隔开。
第三行一个长度为 的字符串 ,由 组成,代表 Alice 记住的洗牌顺序。
输出格式
输出 行,每行一个字符串,代表 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 解释
初始时牌堆中牌的种类从上到下依次为:。
Bob 将其分为左右两堆,两堆中的牌的种类从上到下依次为:
- 左堆:;
- 右堆:。
在洗牌过程中,左堆、右堆、新的牌堆中从上到下牌的种类如下表所示:
| 操作次数 | 左堆(从上到下) | 右堆(从上到下) | 新的牌堆(从上到下) |
|---|---|---|---|
| 初始 | 空 | ||
| () | |||
| () | |||
| () | |||
| () | |||
| () | |||
| () | |||
| () | 空 | ||
| () | 空 |
最终新的牌堆为:。
按照发牌规则,第 张牌应当给予 Alice,因此 Alice 最终拿到的牌从前到后依次是 。
数据规模与约定
本题共 个测试点。对于 的数据,。表示牌的种类字符串长度不超过 ,且仅会出现大小写字母和/或数字。 中 和 的出现次数相同。
| 测试点编号 | 特殊性质 | |
|---|---|---|
| 无 | ||
| 所有代表牌种类的字符串相同 | ||
| 的前 个字符一定是 ,后 个字符一定是 | ||
| 的前 个字符一定是 ,后 个字符一定是 | ||
| 为 交替构成(即 ,) | ||
| 无 |
青创八语言月赛欢乐赛
- Status
- Done
- Rule
- IOI
- Problem
- 9
- Start at
- 2025-11-25 14:00
- End at
- 2025-11-25 15:00
- Duration
- 1 hour(s)
- Host
- Partic.
- 24