luogu#P7279. 光棱碎片

光棱碎片

题目背景

碎片在少年的世界里四处飘散。
最后被少年收集起,成为一列仿若无意义的字符。

题目描述

少年只剩一个字符串 SS,它的长度为 nn,下标以 1n1 \dots n 编号;
以及一个数组 a1na_{1\dots n}

少年写出了两个数 L,RL,R 并尝试寻找那些被光芒照耀过的碎片:
对于 SS 中两个出现位置不同而本质相同的子串 (Sl1r1,Sl2r2)(S_{l_1\dots r_1},S_{l_2\dots r_2}),若 $L \le (a_{r_1} \oplus a_{r_2}) + (r_1 - l_1 + 1) \le R$,则这两个子串之间存在光芒。
其中 SlrS_{l\dots r} 表示 SS 的下标在 [l,r][l,r] 内的字符顺次连接构成的子串,\oplus 表示按位异或运算。

少年试图寻找,有多少对子串之间存在光芒。
子串对是无序的。具体地,(Sl1r1,Sl2r2)(S_{l_1\dots r_1},S_{l_2\dots r_2})(Sl2r2,Sl1r1)(S_{l_2\dots r_2},S_{l_1\dots r_1}) 视为一个子串对。
而你只需要将答案对 998244353998244353 取模之后告诉他就行了。

输入格式

第一行,一个正整数 nn
第二行,一个字符串 SS
第三行,nn 个非负整数 a1na_{1\dots n}
第四行,两个非负整数 L,RL,R

输出格式

一行,一个非负整数,表示答案。

5
abcbc
0 1 2 3 4
2 7
2

提示

对于 20%20\% 的数据,n100n \le 100
对于 50%50\% 的数据,n103n \le 10^3
对于 100%100\% 的数据,1n1051 \le n \le 10^5, 0ai,L,R1050 \le a_i,L,R \le 10^5, LRL \le R, SS 只包含小写字母。

「出题人的馈赠」
勇敢一点。相信某算法的常数。你想到的可能就是垃圾标算。