codeforces#P2069E. A, B, AB and BA
A, B, AB and BA
以下题面由 AI 翻译。
问题描述
给定一个由字符 A 和 B 组成的字符串 。你的任务是将其分成长度为 和 的块,使得:
- 没有超过 个等于 "A" 的字符串;
- 没有超过 个等于 "B" 的字符串;
- 没有超过 个等于 "AB" 的字符串;
- 没有超过 个等于 "BA" 的字符串;
字符 AA 和 BB 是禁止的。字符串中的每个字符必须属于恰好一个块。
输入格式
- 第一行包含一个整数 (),表示测试用例的数量。
- 接下来是 个独立的测试用例。
- 每个测试用例的第一行包含一个字符串 (),仅由字符 A 和/或 B 组成。
- 每个测试用例的第二行包含四个整数 , , , 和 (),表示分别对应 "A"、"B"、"AB" 和 "BA" 的最大允许数量。
- 保证所有测试用例的字符串长度之和不超过 。
输出格式
对于每个测试用例,如果可以将字符串 按要求分割,则输出 YES;否则输出 NO。
输入样例
2,3,6,7,10,11,14,15
7
A
0 0 10 10
B
0 1 0 0
ABA
0 0 1 1
ABBABAAB
5 5 0 0
ABABBAABBAAB
1 1 2 3
ABBBBAB
0 3 2 0
BAABBA
1 3 2 0
输出样例
NO
YES
NO
YES
YES
YES
NO
提示
- 在第三个测试用例中,所有可能的分割方式都是:"A|B|A"、"AB|A" 或 "A|BA"。所有这些分割方式都至少包含一个 "A"。
- 在第四个测试用例中,其中一个可能的分割方式是:"A|B|B|A|B|A|A|B"。
- 在第五个测试用例中,其中一个可能的分割方式是:"A|BA|B|BA|AB|BA|AB"。