#include <bits/stdc++.h>
using namespace std;

int main() {
  int N;
  string S;
  
  cin >> N >> S;
  
  vector<int> rr(N);
  vector<int> bb(N);
  vector<int> gg(N);
  int ra=0;
  int ba=0;
  int ga=0;
  long ans=0;
  
  for(int i=0; i<N; i++){
   if(S.at(i)=='R'){
     rr.at(i)=1;
     bb.at(i)=0;
     gg.at(i)=0;
     ra=ra+1;
   }
     if(S.at(i)=='B'){
     rr.at(i)=0;
     bb.at(i)=1;
     gg.at(i)=0;
       ba=ba+1;
   }
      if(S.at(i)=='G'){
     rr.at(i)=0;
     bb.at(i)=0;
     gg.at(i)=1;
        ga=ga+1;
   }
  }
  
  vector<int> konosakib(N);
  if(bb.at(0)==0){
  konosakib.at(0)=ba;
  }
  if(bb.at(0)==1){
    konosakib.at(0)=ba-1;
  }
  for(int i=1;i<N;i++){
    if(bb.at(i)==1){
   konosakib.at(i)=konosakib.at(i-1)-1;
    }
    else{
      konosakib.at(i)=konosakib.at(i-1);
    }
    }
  
  vector<int> konosakir(N);
  if(rr.at(0)==0){
  konosakir.at(0)=ra;
  }
  if(rr.at(0)==1){
    konosakir.at(0)=ra-1;
  }
  for(int i=1;i<N;i++){
    if(rr.at(i)==1){
   konosakir.at(i)=konosakir.at(i-1)-1;
    }
    else{
      konosakir.at(i)=konosakir.at(i-1);
    }
    }

  vector<int> konosakig(N);
  if(gg.at(0)==0){
  konosakig.at(0)=ga;
  }
  if(gg.at(0)==1){
    konosakig.at(0)=ga-1;
  }
  for(int i=1;i<N;i++){
    if(gg.at(i)==1){
   konosakig.at(i)=konosakig.at(i-1)-1;
    }
    else{
      konosakig.at(i)=konosakig.at(i-1);
    }
    }
  
  
  
  
  
  for(int i=0;i<(N-2);i++){
   if(rr.at(i)==1){
    for(int n=(i+1); n<(N-1); n++){
     if(gg.at(n)==1){
       ans = ans + konosakib.at(n);
     }
    }
   }
    
  }
  
  for(int i=0;i<(N-2);i++){
   if(rr.at(i)==1){
    for(int n=(i+1); n<(N-1); n++){
     if(bb.at(n)==1){
       ans = ans + konosakig.at(n);
     }
    }
   }
    
  }
  
  for(int i=0;i<(N-2);i++){
   if(bb.at(i)==1){
    for(int n=(i+1); n<(N-1); n++){
     if(rr.at(n)==1){
       ans = ans + konosakig.at(n);
     }
    }
   }
    
  }
  
  for(int i=0;i<(N-2);i++){
   if(bb.at(i)==1){
    for(int n=(i+1); n<(N-1); n++){
     if(gg.at(n)==1){
       ans = ans + konosakir.at(n);
     }
    }
   }
    
  }
  
  for(int i=0;i<(N-2);i++){
   if(gg.at(i)==1){
    for(int n=(i+1); n<(N-1); n++){
     if(rr.at(n)==1){
       ans = ans + konosakib.at(n);
     }
    }
   }
    
  }
  
  for(int i=0;i<(N-2);i++){
   if(gg.at(i)==1){
    for(int n=(i+1); n<(N-1); n++){
     if(bb.at(n)==1){
       ans = ans + konosakir.at(n);
     }
    }
   }
    
  }

  
  
  
  
  int j=0;
  int ff;
  for(int i=0; i<N; i++){
   if(rr.at(i)==1){
     j=i+1;
    while((j+j-i)<N){
      ff=j+j-i;
     if(gg.at(j)==1 && bb.at(ff)==1){
       ans=ans-1;
     }      
      j=j+1;
    } 
   }     
  }
  
  j=0;
  for(int i=0; i<N; i++){
   if(rr.at(i)==1){
     j=i+1;
    while((j+j-i)<N){
      ff=j+j-i;
     if(bb.at(j)==1 && gg.at(ff)==1){
       ans=ans-1;
     }      
      j=j+1;
    }     
   }     
  }
  
  j=0;
  for(int i=0; i<N; i++){
   if(bb.at(i)==1){
     j=i+1;
    while((j+j-i)<N){
      ff=j+j-i;
     if(rr.at(j)==1 && gg.at(ff)==1){
       ans=ans-1;
     }      
      j=j+1;
    }      
   }     
  }
  
  j=0;
  for(int i=0; i<N; i++){
   if(bb.at(i)==1){
     j=i+1;
    while((j+j-i)<N){
      ff=j+j-i;
     if(gg.at(j)==1 && rr.at(ff)==1){
       ans=ans-1;
     }      
      j=j+1;
    }     
   }     
  }
  
  j=0;
  for(int i=0; i<N; i++){
   if(gg.at(i)==1){
     j=i+1;
    while((j+j-i)<N){
      ff=j+j-i;
     if(rr.at(j)==1 && bb.at(ff)==1){
       ans=ans-1;
     }      
      j=j+1;
    }      
   }   
  }
  
  j=0;
  for(int i=0; i<N; i++){
   if(gg.at(i)==1){
     j=i+1;
    while((j+j-i)<N){
      ff=j+j-i;
     if(bb.at(j)==1 && rr.at(ff)==1){
       ans=ans-1;
     }      
      j=j+1;
    }      
   } 
  }
  

  
       
   cout <<ans << endl;
  
  return 0;
}
    


Measured memory_bytes: 3752