欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF2145B.Deck of Cards
Deck of Cards
Monocarp has a deck of cards numbered from to . Initially, the cards are arranged from smallest to largest, with on top and at the bottom.
Monocarp performed actions on the deck. Each action was one of three types:
- remove the top card;
- remove the bottom card;
- remove either the top or bottom card.
Your task is to determine the fate of each card: whether it remains in the deck, has been removed, or might be both.
Input
The first line contains a single integer () — the number of test cases.
The first line of each test case contains two integers and ().
The second line contains a string of length , consisting of characters 0, 1, and/or {2}. This string describes Monocarp's actions. If the -th character is 0, Monocarp removes the top card on the -th action. If it's 1, he removes the bottom card. If it's 2, either the top or bottom card can be removed.
Additional constraint on the input: the sum of over all test cases doesn't exceed .
Output
For each test case, print a string consisting of characters. The -th character should be + (plus sign) if the -th card is still in the deck, - (minus sign) if it has been removed, or ? (question mark) if its state is unknown.
Samples
4
4 2
01
3 2
22
1 1
2
7 5
01201
-++-
???
-
--?+?--
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |