#aBC308E. [ABC308E] MEX

[ABC308E] MEX

AT_abc308_e [ABC308E] MEX

题目描述

给定一个由 0,1,20,1,2 组成的长度为 NN 的数列 A=(A1,A2,,AN)A=(A_1,A_2,\dots,A_N),以及一个由 MEX 组成的长度为 NN 的字符串 S=S1S2SNS=S_1S_2\dots S_N

请计算所有满足 1i<j<kN1 \leq i < j < k \leq NSiSjSk=S_iS_jS_k= MEX 的整数三元组 (i,j,k)(i,j,k),对于每个三元组,求 mex(Ai,Aj,Ak)\text{mex}(A_i,A_j,A_k) 的总和。这里,mex(Ai,Aj,Ak)\text{mex}(A_i,A_j,A_k) 表示不等于 Ai,Aj,AkA_i,A_j,A_k 的最小非负整数。

输入格式

输入通过标准输入给出,格式如下:

NN A1A_1 A2A_2 \dots ANA_N SS

输出格式

请输出答案,结果为一个整数。

输入输出样例 #1

输入 #1

4
1 1 0 2
MEEX

输出 #1

3

输入输出样例 #2

输入 #2

3
0 0 0
XXX

输出 #2

0

输入输出样例 #3

输入 #3

15
1 1 2 0 0 2 0 2 0 0 0 0 0 2 2
EXMMXXXEMEXEXMM

输出 #3

13

说明/提示

限制条件

  • 3N2×1053 \leq N \leq 2 \times 10^5
  • NN 为整数
  • Ai{0,1,2}A_i \in \{0,1,2\}
  • SS 是由 MEX 组成的长度为 NN 的字符串

样例解释 1

满足 SiSjSk=S_iS_jS_k = MEX(i,j,k)(i,j,k) 共有 (1,2,4),(1,3,4)(1,2,4),(1,3,4) 两组。mex(A1,A2,A4)=mex(1,1,2)=0\text{mex}(A_1,A_2,A_4)=\text{mex}(1,1,2)=0mex(A1,A3,A4)=mex(1,0,2)=3\text{mex}(A_1,A_3,A_4)=\text{mex}(1,0,2)=3,因此答案为 0+3=30+3=3

由 ChatGPT 4.1 翻译