#include <stdio.h>
#define MIN(x,y) (((x) > (y)) ? (y) : (x))
#define ABS(x) ((x) >= 0 ? (x) : (-(x)))

char s[4001];
int rgb[4001][3];
int rest(char a, char b) {
  if ((a == 'R' && b == 'G') || (a == 'G' && b == 'R')) {
    return 2; // B
  } else if ((a == 'R' && b == 'B') || (a == 'B' && b == 'R')) {
    return 1; // G
  } else {
    return 0;
  }
}
char restc(char a, char b) {
  if ((a == 'R' && b == 'G') || (a == 'G' && b == 'R')) {
    return 'B'; // B
  } else if ((a == 'R' && b == 'B') || (a == 'B' && b == 'R')) {
    return 'G'; // G
  } else {
    return 'R';
  }
}
int main() {
  int n;
  scanf("%d", &n);
  scanf("%s", s);
  long long sum = 0;
  for (int i = n - 1; i >= 0; i--) {
    rgb[i][0] = rgb[i+1][0] + (s[i] == 'R' ? 1 : 0);
    rgb[i][1] = rgb[i+1][1] + (s[i] == 'G' ? 1 : 0);
    rgb[i][2] = rgb[i+1][2] + (s[i] == 'B' ? 1 : 0);
  }
  for (int i = 0; i < n; i++) {
    //printf("%d %d %d\n", rgb[i][0], rgb[i][1], rgb[i][2]);
    for (int j = i; j < n; j++) {
      if (s[i] != s[j]) {
        int r = rest(s[i], s[j]);
        int rc = restc(s[i], s[j]);
        int d = j - i;
        sum += rgb[j + 1][r] - ((j + d < n && s[j + d] == rc) ? 1 : 0);
      }
    }
  }
  printf("%lld", sum);
  return 0;
}