#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define FOR(i,k,n) for (int (i)=(k); (i)<(n); ++(i)) #define rep(i,n) FOR(i,0,n) #define pb push_back #define eb emplace_back #define all(v) begin(v), end(v) #define debug(x) cerr<< #x <<": "< i_i; typedef pair p_i; typedef vector vi; typedef vector > vvi; typedef vector vll; typedef vector > vvll; typedef vector vc; typedef vector > vvc; typedef vector vd; typedef vector > vvd; template using vv=vector >; typedef deque di; typedef deque > ddi; // cout vector template ostream& operator<<(ostream& s, const vector& v) { int len = v.size(); for (int i = 0; i < len; ++i) { s << v[i]; if (i < len - 1) s << "\t"; } return s; } // cout 2-dimentional vector template ostream& operator<<(ostream& s, const vector< vector >& vv) { int len = vv.size(); for (int i = 0; i < len; ++i) { s << vv[i] << endl; } return s; } int main() { string s; cin >> s; vi c; vi w; rep (i, s.length()) { if ( s[i] == 'c') { c.pb(i); } if ( s[i] == 'w') { w.pb(i); } } int numw = w.size(); ll ans = 0; for (int i : c) { ll partn = numw - (upper_bound(all(w), i) - begin(w)); ans += partn * (partn-1) / 2; } printf("%lld\n", ans); return 0; }