#include <iostream>
#include <string>

using namespace std;

void func_A() {

    int n;
    cin >> n;

    while (n > 0) {
        if (n % 10 == 7) {
            cout << "Yes";
            return;
        }

        n /= 10;
    }

    cout << "No";
}

void func_B() {

    unsigned long long n;
    cin >> n;

    unsigned long long sum = 0;
    for (unsigned long long i = 1; i <= n; ++i) {
        if (i % 3 != 0 && i % 5 != 0) sum += i; 
    }

    cout << sum;
}

int gcd(int x, int y) {

    if (y == 0) return x;

    return gcd(y, x % y);
}

void func_C() {

    int k;
    cin >> k;

    int sum = 0;
    for (int a = 1; a <= k; ++a) {
        for (int b = 1; b <= k; ++b) {
            for (int c = 1; c <= k; ++c) {
                sum += gcd(gcd(a, b), c);
            }
        }
    }

    cout << sum;

}

void func_D() {

    int n;
    cin >> n;
    string s;
    cin >> s;

    int count = 0;

    for (int i = 0; i < n - 2; ++i) {
        for (int j = i + 1; j < n - 1; ++j) {
            if (s[i] == s[j]) continue;
            for (int k = j + 1; k < n; ++k) {
               // cout << "i:" << i << " j:" << j << " k:" << k << "\n";
                if (j - i == k - j) continue;
                if (s[j] != s[k] && s[k] != s[i]) ++count;
            }
        }
    }

    cout << count;
}

void func_Dfix() {
    
    int n;
    cin >> n;

    string s;
    cin >> s;

    /*
    まずは条件１を満たす組み合わせの総数を考える
    条件1はつまるところ'R'と'G'と'B'の組み合わせなので、
    (Rの総数)*(Gの総数)*(Bの総数)で求められる
    よって、文字列からRGBの数を求める
    */
    int num_r = 0;
    int num_g = 0;
    int num_b = 0;
    for (string temp = s; temp.empty() == 0; temp.erase(0, 1)) {
        if (temp[0] == 'R') ++num_r;
        else if (temp[0] == 'G') ++num_g;
        else if (temp[0] == 'B') ++num_b;
        else cout << "rgb以外を検出しました\n";
    }

    int ans = num_r * num_g * num_b;
    
    /*
    条件1を満たす組み合わせの総数を求めたので、
    条件２を満たさない組み合わせを引けば
    求めたい値が得られる
    条件２は　j-i != k - j
    すなわち　k != 2*j - i
    よってすべての(i,j)の組み合わせについて
    s[i],s[j],s[2*j-i] で条件１を満たすものを求める。
    （これが条件1を満たすが条件２を満たさない組み合わせ）

    k = 2 * j - i　を利用することによりO(N^2)で求めることができる
    */

    for (int i = 0; i < n-2; ++i) {
        for (int j = i+1; j < n-1; ++j) {
            if (2 * j - i > n - 1) continue;
            if (s[i] != s[j] && s[i] != s[2 * j - i] && s[j] != s[2 * j - i]) --ans;
        }
    }

    cout << ans;



}

void func_E(){


}

int main()
{
    //func_A();
    //func_B();
    //func_C();
    //func_D();
    func_Dfix();
    //func_E();
    return 0;

}