#include <bits/stdc++.h>																							   
																													   
using namespace std; 																								   
																													   
const int INF = 1000000001;																						   
const float PI = 3.14;																								   
typedef long long LL;																								   
																													   
typedef vector<int> vi;																								   
typedef list<int> li;																								   
typedef queue<int> qi; 																								   
typedef pair<int,int> ii; 																							   
typedef map<string,int> msi; //np msi['nazwa'] = 'liczba'															   
typedef vector<ii> vii; //vector par<int>, do tworzenia tablicy dla grafów wagowych #dijkstra #Bellman_Ford			   
typedef priority_queue< ii, vector<ii>, greater<ii> > pq; //kolejka priorytetowa vectorów par(top()=min) #dijkstra	   
																													   																					   
vector<ii>::iterator iter;																							   
																													   																				   
#define print_list(x) for(it = (x).begin(); it != (x).end(); it++) {cout << *it << " ";}							   
#define print_vector(x) for(it2 = (x).begin(); it2 != (x).end(); it2++) {cout << *it2 << " ";}						   
#define search_list(x) for(it = (x).begin(); it != (x).end(); it++)													   
#define search_vector(x) for(it2 = (x).begin(); it2 != (x).end(); it2++);											   
#define pb(x) push_back(x) 																							   
#define pf(x) push_front(x)																							   
#define mp(x, y) make_pair(x, y)                                                                                       
///////////////////////////////////////////////GLOBAL DEFINITIONS////////////////////////////////////////////////////////
	
LL licznik_R[4005];
LL licznik_G[4005];
LL licznik_B[4005];
char s[4005];

///////////////////////////////////////////////////FUNCTIONS/////////////////////////////////////////////////////////////



/////////////////////////////////////////////////////MAIN////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])																					 
{ios_base::sync_with_stdio(false); cin.tie(NULL);                  												       
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	int n;
	cin >> n;
	for(int i = 1; i <= n; i++){
		cin >> s[i];
	}

	for(int i = 1; i <= n; i++){
		if(s[i] == 'R'){
			licznik_R[i] = licznik_R[i-1] + 1;
			licznik_G[i] = licznik_G[i-1];
			licznik_B[i] = licznik_B[i-1];
		}
		else if(s[i] == 'G'){
			licznik_G[i] = licznik_G[i-1] + 1;
			licznik_R[i] = licznik_R[i-1];
			licznik_B[i] = licznik_B[i-1];
		}
		else if(s[i] == 'B'){
			licznik_B[i] = licznik_B[i-1] + 1;
			licznik_R[i] = licznik_R[i-1];
			licznik_G[i] = licznik_G[i-1];
		}	
	}
	
	LL suma = 0;
	for(int i = 1; i <= n; i++){
		for(int j = i+1; j <= n; j++){
			if(s[i] != s[j]){
				if(s[i] == 'R' && s[j] == 'B'){
					suma += ((licznik_G[n] - licznik_G[j]) - ((s[j + (j-i)] == 'G' && (j + (j-i) <= n)) ? 1 : 0));
				}
				else if(s[i] == 'R' && s[j] == 'G'){
					suma += ((licznik_B[n] - licznik_B[j]) - ((s[j + (j-i)] == 'B' && (j + (j-i) <= n)) ? 1 : 0));
				}
				else if(s[i] == 'B' && s[j] == 'R'){
					suma += ((licznik_G[n] - licznik_G[j]) - ((s[j + (j-i)] == 'G' && (j + (j-i) <= n)) ? 1 : 0));
				}
				else if(s[i] == 'B' && s[j] == 'G'){
					suma += ((licznik_R[n] - licznik_R[j]) - ((s[j + (j-i)] == 'R' && (j + (j-i) <= n)) ? 1 : 0));
				}
				else if(s[i] == 'G' && s[j] == 'R'){
					suma += ((licznik_B[n] - licznik_B[j]) - ((s[j + (j-i)] == 'B' && (j + (j-i) <= n)) ? 1 : 0));
				}
				else if(s[i] == 'G' && s[j] == 'B'){
					suma += ((licznik_R[n] - licznik_R[j]) - ((s[j + (j-i)] == 'R' && (j + (j-i) <= n)) ? 1 : 0));
				}
			}
		}
	}
	
	cout << suma << endl;

	return 0;
}


Measured memory_bytes: 3740