#690. 删牌
删牌
题目描述
Watcher 有一副编号为 到 的牌。初始时,牌从上到下按从小到大排列,即最上面是 ,最下面是 。
Watcher 对这副牌进行了 次操作。每次操作是以下三种之一:
- 删除最上面的牌;
- 删除最下面的牌;
- 删除最上面或最下面的一张牌(二选一)。
你的任务是判断每张牌的“命运”:该牌是一定还在牌堆中、一定已被删除,还是可能在也可能不在(不确定)。
输入格式
第一行包含一个整数 ()——测试用例数。
每个测试用例包含两行:
- 第一行包含两个整数 和 ()。
- 第二行包含一个长度为 的字符串 ,由字符
0、1和2组成,描述 Watcher 的操作序列。- 若第 个字符为
0,则第 次操作删除当前的最上面一张牌; - 若为
1,则删除当前最下面一张牌; - 若为
2,则该次操作可以删除当前的最上面或最下面的一张牌(任意选择)。
- 若第 个字符为
额外保证:所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,输出一个长度为 的字符串(不换行)。第 个字符应为:
+表示牌 一定还在牌堆中;-表示牌 一定已被删除;?表示牌 的状态不确定(可能在也可能不在)。
样例输入
4
4 2
01
3 2
22
1 1
2
7 5
01201
样例输出
-++-
???
-
--?+?--