“Quiz Solver” 是一款流行的在线电脑游戏。玩家每次打开游戏的移动应用程序,都会显示一道新的测验题。玩家提交答案后,系统会判定其正确或错误,并记录在数据库中。当玩家在一定数量的测验中表现出高准确率时,其游戏等级就会提升。
玩家等级为非负整数,每位玩家从等级 0 开始游戏。当玩家在足够长的测验序列中达到较高的正确率时,等级就会提升到下一级。更准确地说,等级提升系统由两个参数定义:一个整数 $c$ 和一个有理数 $p/q$。在完成第 $e$ 道测验后,如果存在一个整数 $s$ 满足以下条件,玩家的等级会立即增加 1:
- $1 \le s \le e - c + 1$。
- 在开始第 $s$ 道测验之前,玩家已经处于当前等级。
- 从第 $s$ 道到第 $e$ 道测验的正确答案比例大于或等于 $p/q$。
否则,等级保持不变。
有一天,Quiz Solver 的管理员发现由于数据库故障,玩家的等级数据丢失了。幸运的是,测验记录日志被完整保存了下来,没有损坏。你的任务是根据玩家的答题记录重新计算每位玩家的等级。
输入格式
输入包含单个测试用例,格式如下:
$n \ c \ p \ q$ $S_1 \dots S_n$
第一行包含四个整数,满足以下约束:$1 \le n \le 5 \times 10^5$,$1 \le c \le 200$,$1 \le p \le q \le 5 \times 10^5$。第一个整数 $n$ 是玩家回答的测验总数。参数 $c$、$p$ 和 $q$ 的含义如题目描述所述。
$S_1 \dots S_n$ 是一个描述玩家答题记录的字符串。每个 $S_i$ 要么是 'Y',表示玩家对第 $i$ 道测验的回答正确;要么是 'N',表示回答错误。
输出格式
输出玩家完成第 $n$ 道测验后的最终等级。
样例
输入 1
12 4 4 7 YYYNYYNNNYYN
输出 1
2
输入 2
10 1 1 1 YNYNYNYNYN
输出 2
5
输入 3
17 5 250000 500000 YYYYYYYYYYYYYYYYY
输出 3
3
输入 4
8 3 2 3 YNNYYYYN
输出 4
2
说明
在样例 1 中,玩家在完成第四道测验后提升至等级 1,因为正确答案比例 $3/4$ 大于 $p/q = 4/7$。注意,在第三道测验时没有发生提升,因为当时只回答了三道题,少于 $c = 4$。随后,在第十一道测验后,玩家提升至等级 2。
图 B.1. 样例 1 的等级提升时机