Buggy python submission (verdict: Time Limit Exceeded):
# NOTE: PyPyだと通る

n = int(input())
s = input()

count_R = (0,)
count_G = (0,)
count_B = (0,)
for c in s:
    count_R += (count_R[-1]+1,) if c == 'R' else (count_R[-1],)
    count_G += (count_G[-1]+1,) if c == 'G' else (count_G[-1],)
    count_B += (count_B[-1]+1,) if c == 'B' else (count_B[-1],)
d = {'R': count_R, 'G': count_G, 'B': count_B}

res = 0
for i in range(n-2):
    for k in range(i+1, n-1):
        if s[i] == s[k]:
            continue
        st = {'R', 'G', 'B'}
        st.discard(s[i])
        st.discard(s[k])
        c = st.pop()
        cnt = d[c]
        res += cnt[-1] - cnt[k]
        if k+k-i < n and s[k+k-i] == c:
            res -= 1

print(res)


Fixed submission:
n = int(input())
s = input()

count_R = [0]
count_G = [0]
count_B = [0]
d = {'R': count_R, 'G': count_G, 'B': count_B}
for c in s:
    count_R.append(count_R[-1]+1) if c == 'R' else count_R.append(count_R[-1])
    count_G.append(count_G[-1]+1) if c == 'G' else count_G.append(count_G[-1])
    count_B.append(count_B[-1]+1) if c == 'B' else count_B.append(count_B[-1])

res = 0
for i in range(n-2):
    for k in range(i+1, n-1):
        if s[i] == s[k]:
            continue
        st = {'R', 'G', 'B'}
        st.discard(s[i])
        st.discard(s[k])
        c = st.pop()
        cnt = d[c]
        res += cnt[-1] - cnt[k]
        if k+k-i < n and s[k+k-i] == c:
            res -= 1

print(res)

Buggy python submission (verdict: Time Limit Exceeded):
def main():
    n = int(input())
    s = input()

    count_R = [0]
    count_G = [0]
    count_B = [0]
    d = {'R': count_R, 'G': count_G, 'B': count_B}
    for c in s:
        count_R.append(count_R[-1]+1) if c == 'R' else count_R.append(count_R[-1])
        count_G.append(count_G[-1]+1) if c == 'G' else count_G.append(count_G[-1])
        count_B.append(count_B[-1]+1) if c == 'B' else count_B.append(count_B[-1])

    res = 0
    for i in range(n-2):
        for k in range(i+1, n-1):
            if s[i] == s[k]:
                continue
            st = {'R', 'G', 'B'}
            st.discard(s[i])
            st.discard(s[k])
            c = st.pop()
            cnt = d[c]
            res += cnt[-1] - cnt[k]
            if k+k-i < n and s[k+k-i] == c:
                res -= 1

    print(res)

if __name__ == '__main__':
    main()


Fixed submission:
n = int(input())
s = input()

count_R = [0]
count_G = [0]
count_B = [0]
d = {'R': count_R, 'G': count_G, 'B': count_B}
for c in s:
    count_R.append(count_R[-1]+1) if c == 'R' else count_R.append(count_R[-1])
    count_G.append(count_G[-1]+1) if c == 'G' else count_G.append(count_G[-1])
    count_B.append(count_B[-1]+1) if c == 'B' else count_B.append(count_B[-1])

res = 0
for i in range(n-2):
    for k in range(i+1, n-1):
        if s[i] == s[k]:
            continue
        st = {'R', 'G', 'B'}
        st.discard(s[i])
        st.discard(s[k])
        c = st.pop()
        cnt = d[c]
        res += cnt[-1] - cnt[k]
        if k+k-i < n and s[k+k-i] == c:
            res -= 1

print(res)

Buggy python submission (verdict: Time Limit Exceeded):
n = int(input())
s = input()

count_R = [0]
count_G = [0]
count_B = [0]
d = {'R': count_R, 'G': count_G, 'B': count_B}
for c in s:
    count_R.append(count_R[-1]+1) if c == 'R' else count_R.append(count_R[-1])
    count_G.append(count_G[-1]+1) if c == 'G' else count_G.append(count_G[-1])
    count_B.append(count_B[-1]+1) if c == 'B' else count_B.append(count_B[-1])

res = 0
for i in range(n-2):
    for k in range(i+1, n-1):
        if s[i] == s[k]:
            continue
        st = {'R', 'G', 'B'}
        st.discard(s[i])
        st.discard(s[k])
        c = st.pop()
        cnt = d[c]
        res += cnt[-1] - cnt[k]
        if k+k-i < n and s[k+k-i] == c:
            res -= 1

print(res)


Fixed submission:
n = int(input())
s = input()

count_R = [0]
count_G = [0]
count_B = [0]
d = {'R': count_R, 'G': count_G, 'B': count_B}
for c in s:
    count_R.append(count_R[-1]+1) if c == 'R' else count_R.append(count_R[-1])
    count_G.append(count_G[-1]+1) if c == 'G' else count_G.append(count_G[-1])
    count_B.append(count_B[-1]+1) if c == 'B' else count_B.append(count_B[-1])

res = 0
for i in range(n-2):
    for k in range(i+1, n-1):
        if s[i] == s[k]:
            continue
        st = {'R', 'G', 'B'}
        st.discard(s[i])
        st.discard(s[k])
        c = st.pop()
        cnt = d[c]
        res += cnt[-1] - cnt[k]
        if k+k-i < n and s[k+k-i] == c:
            res -= 1

print(res)