计划
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
给你一个由 条指令组成的程序。最初,一个变量 被赋值给 。之后,指令有两种类型:
- 将 增加 ;
- 将 减少 。
您将得到 个查询,其格式如下:
- 查询 - 如果忽略第 个指令和第 个指令(包括第 个指令和第 个指令)之间的所有指令,并且在不改变顺序的情况下执行其他指令,那么 被分配给多少个不同的值?
输入格式
输入
第一行包含一个整数 ( ) - 测试用例数。
然后是 个测试用例的描述。
每个测试用例的第一行包含两个整数 和 ( )--程序指令数和查询次数。
每个测试用例的第二行包含一个程序--一个由 个字符组成的字符串:每个字符要么是 "+",要么是"-"--分别是递增指令和递减指令。
接下来的每 行包含两个整数 和 ( )--查询描述。
所有测试用例中 的总和不超过 。所有测试用例中 的总和不超过 。
输出格式
输出
为每个测试用例打印 个整数 - 为每个查询 , 打印变量 被赋值的不同值的个数,前提是忽略 (第 1 个)和 (第 3 个)之间的所有指令,并在不改变顺序的情况下执行其余指令。
2
8 4
-+--+--+
1 8
2 8
2 5
1 1
4 10
+-++
1 1
1 2
2 2
1 3
2 3
3 3
1 4
2 4
3 4
4 4
1
2
4
4
3
3
4
2
3
2
1
2
2
2
注
第一个测试用例中的每个查询所保留的指令是
- 空程序 - 只等于 ;
- "-" - 的值为 和 ;
- "---+" - 的值为 、 、 、 、 --其中有 个不同的值;
- "+--+--+"--不同的值有 , , , 。