codeforces#P2069E. A, B, AB and BA

    ID: 35709 远端评测题 2000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>constructive algorithmsgreedysortings

A, B, AB and BA

以下题面由 AI 翻译。

问题描述

给定一个由字符 AB 组成的字符串 ss。你的任务是将其分成长度为 1122 的块,使得:

  • 没有超过 aa 个等于 "A" 的字符串;
  • 没有超过 bb 个等于 "B" 的字符串;
  • 没有超过 abab 个等于 "AB" 的字符串;
  • 没有超过 baba 个等于 "BA" 的字符串;

字符 AABB 是禁止的。字符串中的每个字符必须属于恰好一个块。

输入格式

  • 第一行包含一个整数 tt (1t1041 \le t \le 10^4),表示测试用例的数量。
  • 接下来是 tt 个独立的测试用例。
  • 每个测试用例的第一行包含一个字符串 ss (1s51051 \le |s| \le 5 \cdot 10^5),仅由字符 A 和/或 B 组成。
  • 每个测试用例的第二行包含四个整数 aa, bb, abab, 和 baba (0a,b,ab,ba51050 \le a, b, ab, ba \le 5 \cdot 10^5),表示分别对应 "A"、"B"、"AB" 和 "BA" 的最大允许数量。
  • 保证所有测试用例的字符串长度之和不超过 51055 \cdot 10^5

输出格式

对于每个测试用例,如果可以将字符串 ss 按要求分割,则输出 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"。