#786. 扩建计划

扩建计划

题目描述

在无限网格上,每个格点以整数坐标 (X,Y)(X,Y) 表示(例如,(0,1)(0,1)(0,0)(0,0) 的正上方,(1,0)(1,0)(0,0)(0,0) 的正右方)。初始时,只有格点 (0,0)(0,0) 是黑色的,其余格点为白色。

给定由字符 48 组成的长度为 nn 的字符串 s=s1s2sns=s_1s_2\ldots s_n,表示进行 nn 次扩展操作。对于每次操作 ii1in1\le i\le n),同时对所有格点应用以下规则:

  • si=4s_i=4:任何与某个黑色格点 正交相邻(即共享一条边)的格点变为黑色(其余格点保持原样);
  • si=8s_i=8:任何与某个黑色格点 正交或对角相邻(即共享边或角)的格点变为黑色(其余格点保持原样)。

在进行完所有 nn 次操作后,询问格点 (x,y)(x,y) 是否为黑色。

输入格式

第一行包含一个整数 tt,表示测试用例数。接下来依次描述 tt 个测试用例。

每个测试用例包含两行:

  • 第一行含有三个整数 n, x, yn,\ x,\ y,满足 1n21051\le n\le 2\cdot 10^5109x,y109-10^9\le x,y\le 10^9,分别表示操作次数以及要询问的格点坐标;
  • 第二行包含长度为 nn 的字符串 ss,它仅由字符 48 组成,表示每步的扩展类型。

附加约束:所有测试用例中 n2105\sum n \le 2\cdot 10^5

输出格式

对于每个测试用例,输出一行:

  • 若在所有操作结束后格点 (x,y)(x,y) 为黑色,输出 YES
  • 否则输出 NO

样例输入

6
3 3 3
888
4 5 1
4884
4 3 -3
4884
7 -7 -5
4884884
10 0 0
4884884888
1 1 1
4

样例输出

YES
NO
YES
NO
YES
NO

说明

样例解释

图片描述 图片描述 图片描述

在第一个测试用例中,在字符串 "888"\texttt{"888"} 中进行扩展操作后,单元格 (3,3)(3, 3) 为黑色,因此答案为 YES\texttt{YES}

在第二个测试用例中,在字符串 "4884"\texttt{"4884"} 中进行扩展操作后,单元格 (5,1)(5, 1) 为白色。