#pragma GCC optimize("Ofast")
#include<bits/stdc++.h>
using namespace std;
#define ll long long

int main(){
    ll N,rc=0,gc=0,bc=0,ans=0,i,j,k;
    string S;
    cin>>N>>S;
    vector<int>R(N),G(N),B(N),Rsum(N),Gsum(N),Bsum(N);
    for(i=0;i<S.size();i++){
        if(S[i]=='R'){
            R[i]=1;
            rc++;
        }else if(S[i]=='G'){
            G[i]=1;
            gc++;
        }else if(S[i]=='B'){
            B[i]=1;
            bc++;
        }
    }

    for(i=0;i<N;i++){
        if(i==0){
            Rsum[i]=R[i];
            Gsum[i]=G[i];
            Bsum[i]=B[i];
        }else{
            Rsum[i]+=Rsum[i-1]+R[i];
            Gsum[i]+=Gsum[i-1]+G[i];
            Bsum[i]+=Bsum[i-1]+B[i];
        }
    }

    for(i=0;i<N-2;i++){
        if(B[i]==1){
            for(j=i+1;j<N-1;j++){
                //BGR
                if(G[j]==1){
                    ans+=Rsum[N-1]-Rsum[j];
                    if(2*j-i<N)ans-=R[2*j-i];
                }
                //BRG
                if(R[j]==1){
                    ans+=Gsum[N-1]-Gsum[j];
                    if(2*j-i<N)ans-=G[2*j-i];
                }
            }
        }

        if(G[i]==1){
            for(j=i+1;j<N-1;j++){
                //GBR
                if(B[j]==1){
                    ans+=Rsum[N-1]-Rsum[j];
                    if(2*j-i<N)ans-=R[2*j-i];
                }
                //GRB
                if(R[j]==1){
                    ans+=Bsum[N-1]-Bsum[j];
                    if(2*j-i<N)ans-=B[2*j-i];
                }
            }
        }

        if(R[i]==1){
            for(j=i+1;j<N-1;j++){
                //BGR
                if(B[j]==1){
                    ans+=Gsum[N-1]-Gsum[j];
                    if(2*j-i<N)ans-=G[2*j-i];
                }
                //BRG
                if(G[j]==1){
                    ans+=Bsum[N-1]-Bsum[j];
                    if(2*j-i<N)ans-=B[2*j-i];
                }
            }
        }
    }

    /*for(i=0;i<bc;i++){
        //BGR
        for(j=0;j<gc;j++){
            if(G[j]>B[i]){
                for(k=0;k<rc;k++){
                    if(R[k]>2*G[j]-B[i]){
                        ans+=rc-k;
                        break;
                    }
                }
            }
        }

        //BRG
        for(j=0;j<rc;j++){
            if(R[j]>B[i]){
                for(k=0;k<gc;k++){
                    if(G[k]>2*R[j]-B[i]){
                        ans+=gc-k;
                        break;
                    }
                }
            }
        }
    }

    for(i=0;i<gc;i++){
        //GRB
        for(j=0;j<rc;j++){
            if(R[j]>G[i]){
                for(k=0;k<bc;k++){
                    if(B[k]>2*R[j]-G[i]){
                        ans+=bc-k;
                        break;
                    }
                }
            }
        }

        //GBR
        for(j=0;j<bc;j++){
            if(B[j]>G[i]){
                for(k=0;k<rc;k++){
                   if(R[k]>2*B[j]-G[i]){
                        ans+=rc-k;
                        break;
                    }
                }
            }
        }
    }

    for(i=0;i<rc;i++){
        //RBG
        for(j=0;j<bc;j++){
            if(B[j]>R[i]){
                for(k=0;k<gc;k++){
                    if(G[k]>2*B[j]-R[i]){
                        ans+=gc-k;
                        break;
                    }
                }
            }
        }

        //RGB
        for(j=0;j<gc;j++){
            if(G[j]>R[i]){
                for(k=0;k<bc;k++){
                   if(B[k]>2*G[j]-R[i]){
                        ans+=bc-k;
                        break;
                    }
                }
            }
        }
    }*/
    cout<<ans<<endl;
}

Measured memory_bytes: 3660