#include <fstream>
#include <iostream>
#include <string>
#include <iterator>
#include <stdlib.h>
#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
using ll=long long;
inline constexpr ll gcd(ll a,ll b){if(!a||!b)return 0;while(b){ll c=b;b=a%b;a=c;}return a;}
inline constexpr ll lcm(ll a,ll b){if(!a||!b)return 0;return a*b/gcd(a,b);}
template<class T> inline bool chmin(T& a, T b) {
    if (a > b) {
        a = b;
        return true;
    }
    return false;
}
template<class T> inline bool chmax(T& a, T b) {
    if (a < b) {
        a = b;
        return true;
    }
    return false;
}
int main(){
  int a;
  cin>>a;
  string s;
  cin>>s;
  vector<int> vecr(a,0);
  vector<int> vecg(a,0);
  vector<int> vecb(a,0);
  long long ans=0;
  for(int i=1;i<a;i++){
      if(s.at(i)=='B'){
          vecb.at(i)=vecb.at(i-1)+1;
      }
      else{
          vecb.at(i)=vecb.at(i-1);
      }
  }
  for(int i=1;i<a;i++){
      if(s.at(i)=='R'){
          vecr.at(i)=vecr.at(i-1)+1;
      }
      else{
          vecr.at(i)=vecr.at(i-1);
      }
  }
  for(int i=1;i<a;i++){
      if(s.at(i)=='G'){
          vecg.at(i)=vecg.at(i-1)+1;
      }
      else{
          vecg.at(i)=vecg.at(i-1);
      }
  }
  rep(i,a-2){
      for(int j=i+1;j<a-1;j++){
          if(s.at(i)=='R'&&s.at(j)=='G'){
              if((j+(j-i)>a-1)){
                  ans+=(vecb.at(a-1)-vecb.at(j));
              }
              else{
                  if(s.at(j+j-i)=='B'){
                      ans--;
                  }
                  ans+=(vecb.at(a-1)-vecb.at(j));
              }
          }
          if(s.at(i)=='G'&&s.at(j)=='B'){
              if((j+(j-i)>a-1)){
                  ans+=(vecr.at(a-1)-vecr.at(j));
              }
              else{
                  if(s.at(j+j-i)=='R'){
                      ans--;
                  }
                  ans+=(vecr.at(a-1)-vecr.at(j));
              }
          }
          if(s.at(i)=='R'&&s.at(j)=='B'){
              if((j+(j-i)>a-1)){
                  ans+=(vecg.at(a-1)-vecg.at(j));
              }
              else{
                  if(s.at(j+j-i)=='G'){
                      ans--;
                  }
                  ans+=(vecg.at(a-1)-vecg.at(j));
              }
          }
          if(s.at(i)=='G'&&s.at(j)=='R'){
              if((j+(j-i)>a-1)){
                  ans+=(vecb.at(a-1)-vecb.at(j));
              }
              else{
                  if(s.at(j+j-i)=='B'){
                      ans--;
                  }
                  ans+=(vecb.at(a-1)-vecb.at(j));
              }
          }
          if(s.at(i)=='B'&&s.at(j)=='R'){
              if((j+(j-i)>a-1)){
                  ans+=(vecg.at(a-1)-vecg.at(j));
              }
              else{
                  if(s.at(j+j-i)=='G'){
                      ans--;
                  }
                  ans+=(vecg.at(a-1)-vecg.at(j));
              }
          }
          if(s.at(i)=='B'&&s.at(j)=='G'){
              if((j+(j-i)>a-1)){
                  ans+=(vecr.at(a-1)-vecr.at(j));
              }
              else{
                  if(s.at(j+j-i)=='R'){
                      ans--;
                  }
                  ans+=(vecr.at(a-1)-vecr.at(j));
              }
          }
      }
  }
  cout<<ans<<endl;
}

Measured memory_bytes: 3688