渡河考验

题目描述

Y 同学需要横渡一条宽为 NN 米的河流。起点为左岸(坐标 00),终点为右岸(坐标 N+1N+1)。

河流可以划分为 NN 个长度为 11 米的区段,从坐标 11NN,可以用一个长度为 NN 的字符串 SS 表示。SiS_i 表示第 ii 米处的情况,其中:

  • L 表示该处有一块可以站立的木头;
  • W 表示该处是水域;
  • C 表示该处有鳄鱼。

Y 同学的移动规则如下:

  1. 如果他当前在左岸(坐标 00)或某块木头上(即坐标 xx 满足 Sx=’L’S_x = \text{'L'}),他可以向前跳跃至多 MM 米。也就是说,他可以移动到坐标 x+dx+d1dM1 \le d \le M)。他可以跳到前方的木头上、水域中,或者直接跳到右岸(当 x+dN+1x+d \ge N+1 时,视为成功到达终点)。
  2. 如果他当前在水域中(即坐标 xx 满足 Sx=’W’S_x = \text{'W'}),他只能向前游 11 米,移动到坐标 x+1x+1(若 x+1=N+1x+1 = N+1,则游到右岸)。每次在水域中向前游动会使他在水中的总游泳距离增加 11 米。
  3. 在任何情况下,Y 同学都绝对不能移动到有鳄鱼的区段(即不能停留在满足 Sx=’C’S_x = \text{'C'} 的坐标 xx 处)。

为了保证体温不至过低,Y 同学在水中的总游泳距离不能超过 KK 米。请你判断 Y 同学能否在满足所有规则的前提下,成功到达右岸。

输入格式

第一行包含一个整数 TT,表示测试数据的组数。

对于每组测试数据: 第一行包含三个整数 N,M,KN, M, K,分别表示河流的长度、最大跳跃距离以及允许在水中的最大总游泳距离。 第二行包含一个长度为 NN 的字符串 SS,仅由大写字母 LWC 组成,表示河流各区段的情况。

输出格式

对于每组测试数据,输出一行。如果 Y 同学能成功到达右岸,输出 YES;否则输出 NO

样例

样例输入 #1

6
6 2 0
LWLLLW
6 1 1
LWLLLL
6 1 1
LWLLWL
6 2 15
LWLLCC
6 10 0
CCCCCC
6 6 1
WCCCCW

样例输出 #1

YES
YES
NO
NO
YES
YES

数据范围与约定

对于 100%100\% 的数据,保证 1T1041 \le T \le 10^41N2×1051 \le N \le 2 \times 10^51M101 \le M \le 100K2×1050 \le K \le 2 \times 10^5,且所有测试数据中 NN 的总和不超过 2×1052 \times 10^5

子任务编号 分值 N\sum N \le 特殊性质
1 30 10001000
2 70 2×1052 \times 10^5

相关

在下列比赛中:

「果壳杯」 ROUND 43 (Div. 3)