三元组-T4-甲
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
字符串 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(1 ≤ n ≤ 4000); 第二行包含字符串 S(长度为 n,仅由 'R'、'G'、'B' 组成)。
输出格式
输出一个整数,代表满足所有条件的三元组数量。
样例输入1
4
RRGB
样例输出1
1
样例输入2
39
RBRBGRBGGBBRRGBBRRRBGGBRBGBRBGBRBBBGBBB
样例输出2
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):S[1]=R、S[2]=R、S[3]=G,存在相同字符,不满足条件 2,排除;
- 三元组 (1,2,4):S[1]=R、S[2]=R、S[4]=B,存在相同字符,不满足条件 2,排除;
- 三元组 (1,3,4):1<3<4(满足条件1),字符 R、G、B 互不相同(满足条件2),3-1≠4-3(满足条件3),符合所有要求;
- 三元组 (2,3,4):字符 R、G、B 互不相同(满足条件2),但 3-2=4-3(构成等差数列),不满足条件3,排除。
综上,只有 1 个三元组符合所有条件,因此输出结果为 1。