1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <bits/stdc++.h>

#define ll long long
#define str string
#define pii pair<int, int>
#define pll pair<ll, ll>
#define fi first
#define se second

#define vc vector<char>
#define vvc vector<vc>
#define vi vector<int>
#define vvi vector<vi>
#define vvvi vector<vvi>
#define vvvvi vector<vvvi>
#define vll vector<ll>
#define vvll vector<vll>
#define vvvll vector<vvll>
#define vvvvll vector<vvvll>
#define vs vector<str>
#define vvs vector<vs>
#define vpii vector<pii>
#define vvpii vector<vpii>
#define vpll vector<pll>
#define vvpll vector<vpll>
#define vb vector<bool>
#define vvb vector<vb>
#define rep(i, a, b) for (int i = (a); i < int(b); i++)
#define repi(i, a, b) for (int i = (a); i <= int(b); i++)

using namespace std;


void solve() {
    str w; cin >> w;
    int n = w.size();
    vll a(n + 1, 0), b(n + 1, 0), c(n + 1, 0);

    rep(i, 0, n) {
        a[i + 1] = a[i];
        b[i + 1] = b[i];
        c[i + 1] = c[i];
        if (w[i] == 'a')
            a[i + 1]++;
        if (w[i] == 'b')
            b[i + 1]++;
        if (w[i] == 'c')
            c[i + 1]++;
    }

    ll cnt = 0;

    rep(i, 0, n) {
        rep(j, i, n) {
            ll na = a[j + 1] - a[i];
            ll nb = b[j + 1] - b[i];
            ll nc = c[j + 1] - c[i];
            ll x = max(na, max(nb, nc));
            if ((na == x || na == 0) && (nb == x || nb == 0) && (nc == x || nc == 0)) {
                cnt++;
            }
        }
    }

    cout << cnt << endl;
}


int main() {

    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    bool _multipleTestCases = false;

    if (_multipleTestCases) {
        ll t; cin >> t;
        while (t--)
            solve();
    }
    else {
        solve();
    }

    return 0;
}