题目描述
字符串 S 包含 n 个字符,下标从 1 到 n,每个字符仅为 'R'、'G' 或 'B' 三者之一。
请计算满足以下三个条件的不同下标三元组 (x,y,z) 的数量:
- 下标范围满足 1≤x<y<z≤n;
- 三个位置的字符互不相同,即 S[x]=S[y]、S[x]=S[z] 且 S[y]=S[z];
- 三个下标不构成等差数列,即 y−x=z−y(等价于 2y=x+z)。
输入格式
第一行包含一个整数 n。
第二行包含字符串 S,长度为 n,仅由 'R'、'G'、'B' 组成。
输出格式
输出一个整数,代表满足所有条件的三元组数量。
样例
4
RRGB
1
39
RBRBGRBGGBBRRGBBRRRBGGBRBGBRBGRBBBBGBBB
1800
样例解释 1
字符串 S 为 RRGB,下标 1∼4 对应的字符分别是:1=R、2=R、3=G、4=B。
所有满足 1≤x<y<z≤4 的三元组共 4 个:(1,2,3)、(1,2,4)、(1,3,4)、(2,3,4)。
逐个检查:
- (1,2,3):字符 R,R,G,存在相同字符,不满足条件 2,排除;
- (1,2,4):字符 R,R,B,存在相同字符,不满足条件 2,排除;
- (1,3,4):字符 R,G,B 互不相同,且 3−1=2=4−3=1,满足所有条件;
- (2,3,4):字符 R,G,B 互不相同,但 3−2=4−3=1,构成等差数列,不满足条件 3,排除。
符合条件的只有 1 个三元组,因此输出 1。
数据范围
- 1≤n≤4000