#arc071c. [arc071_c]TrBBnsformBBtion

[arc071_c]TrBBnsformBBtion

题目描述

考虑以下关于由字符AB组成的字符串的操作:

  1. 选择字符串中的一个字符。如果它是A,则用BB替换它。如果它是B,则用AA替换它。
  2. 选择等于AAABBB的子字符串,并将其从字符串中删除。

例如,如果在字符串ABA上执行第一个操作并选择第一个字符,则字符串变为BBBA。如果在字符串BBBAAAA上执行第二个操作并选择第四至第六个字符,则字符串变为BBBA

这些操作可以进行任意次数,任意顺序。

给定两个字符串SSTT,以及qq个查询ai,bi,ci,dia_i, b_i, c_i, d_i。对于每个查询,确定SaiSai+1...SbiS_{a_i} S_{{a_i}+1} ... S_{b_i}SS的子串)是否可以变为TciTci+1...TdiT_{c_i} T_{{c_i}+1} ... T_{d_i}TT的子串)。

约束条件

  • 1S,T1051 \leq |S|, |T| \leq 10^5
  • SSTT只包含字母AB
  • 1q1051 \leq q \leq 10^5
  • 1aibiS1 \leq a_i \leq b_i \leq |S|
  • 1cidiT1 \leq c_i \leq d_i \leq |T|

输入和输出

输入按以下格式从标准输入给出:

SS TT qq a1a_1 b1b_1 c1c_1 d1d_1 ... aqa_q bqb_q cqc_q dqd_q

输出打印qq行。第ii行应该包含对第ii个查询的响应。如果SaiSai+1...SbiS_{a_i} S_{{a_i}+1} ... S_{b_i}可以变成TciTci+1...TdiT_{c_i} T_{{c_i}+1} ... T_{d_i},打印YES。否则,打印NO

示例

以下示例中,输入为:

BBBAAAABA
BBBBA
4
7 9 2 5
7 9 1 4
1 7 2 5
1 7 2 4

输出为:

YES
NO
YES
NO

第一个查询询问字符串ABA是否能变成BBBA。根据问题描述,可以通过进行第一个操作来实现。

第二个查询询问ABA是否能变成BBBB,第四个查询询问BBBAAAA是否能变成BBB。这两者都不可能。

第三个查询询问字符串BBBAAAA是否能变成BBBA。根据问题描述,可以通过进行第二个操作来实现。

以下示例中,输入为:

AAAAABBBBAAABBBBAAAA
BBBBAAABBBBBBAAAAABB
10
2 15 2 13
2 13 6 16
1 13 2 20
4 20 3 20
1 18 9 19
2 14 1 11
3 20 3 15
6 16 1 17
4 18 8 20
7 20 3 14

输出为:

YES
YES
YES
YES
YES
YES
NO
NO
NO
NO