D. D-乱写检测机

    传统题 1000ms 256MiB

D-乱写检测机

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题面描述

小智遇到了一场史无前例的难的数学考试,绞尽脑汁也无法完成所有的题目,对于无法完成的题目,他将会随机选择一个答案填上去。但是魔高一尺道高一丈,老师发明了“乱写检测机”,检测到如果你是乱填的就要惩罚再写一张试卷。

​ 乱写检测机的逻辑如下:一旦在答案序列中发现超过连续的xx个A或者连续的yy个B或者连续的zz个C,就会判定为乱写!小智写出了长度为nn的答案序列a(a1,a2...an1,an)a(a_1,a_2...a_{n-1},a_n),请你帮他找一找,

有多少对[l,r][l,r]符合以下条件:

al,al+1...ar1,ara_l,a_{l+1}...a_{r-1},a_r可以不被”乱写检测机“检查出来是乱写的。

​ 或者说:al,al+1...ar1,ara_l,a_{l+1}...a_{r-1},a_r 不存在连续的 xAyBzCx个A 或 y个B 或 z个C

输入

第一行输入一个整数nn,代表小智写的答案序列的长度。(1n105)(1\leq n \leq 10^5)

第二行输入三个整数x,y,zx,y,z,分别代表答案中A,B,CA,B,C不能连续出现的次数。(1x,y,zn)(1\leq x,y,z \leq n)

第三行输入nn个大写字母a1,a2...an1,ana_1,a_2...a_{n-1},a_n,代表小智的答案序列。(a[i]{A,B,C})(a[i]\in\{A,B,C\})

输出

一个整数,代表符合条件的[l,r][l,r]对数。

样例输入 1

10
1 1 1
ABCABCABAA

样例输出 1

46

样例输入 2

5
1 1 1
ABCAA

样例输出 2

11

样例解释 2

符合条件的[l,r]有: (1,1),(1,2),(1,3),(1,4) (2,2),(2,3),(2,4) (3,3),(3,4) (4,4) (5,5) 共11种

样例输入 3

5
1 1 1
AABAA

样例输出 3

8

样例解释 3

(1,1)(2,2)(2,3)(2,4)(3,3)(3,4)(4,4)(5,5)共8种

测试数据

测试点编号 数据范围
1 ~ 3 n <= 100
4 ~ 6 n <= 10000
7 ~ 10 n <= 100000

2026年青智班-6月赛

未参加
状态
已结束
规则
OI
题目
6
开始于
2026-6-7 8:30
结束于
2026-6-7 11:00
持续时间
2.5 小时
主持人
参赛人数
125