游游的数组染色
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

游游拿到了一个数组,其中一些数被染成红色,一些数被染成蓝色。
游游想知道,取两个不同颜色的数,且它们的数值相等,有多少种不同的取法?
我们定义,两种取法如果取的某个数在原数组的位置不同,则定义为不同的取法。

输入描述:

第一行输入一个正整数 n,代表数组的长度。
第二行输入 n 个正整数 a_i,代表数组中的元素。
第三行输入一个长度为 n ,仅包含 'R' 和 'B' 两种字符的字符串,第 i 个字符为 'R' 代表数组第 i 个元素被染成红色,为 'B' 代表被染成蓝色。

输出描述:

输出一个整数,代表取数的方案数量。
示例1

输入

复制
5
1 2 1 2 2
BRRBB

输出

复制
3

说明

第一种取法,取第一个数和第三个数,颜色不同且都是1。
第二种取法,取第二个数和第四个数,颜色不同且都是2。
第三种取法,取第二个数和第五个数,颜色不同且都是2。
示例2

输入

复制
3
2 3 3
BBB

输出

复制
0

说明

所有数都是蓝色,显然取不出两个颜色不同的数。