http://codeforces.com/contest/1178/problem/B
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e6+50;
char s[maxn];
ll now[maxn];//
ll dp[maxn];
int len(0);
int main()
{
ios_base::sync_with_stdio(false);
cin>>s;
int slen = strlen(s);
int cnt = 0;
for(int i = 0;i < slen;i++)
{
if(s[i] == 'v')
{
cnt++;
if(s[i+1] != 'v')
{
if(cnt-1 == 0)
{
cnt = 0;
continue;
}
now[len++] = cnt-1;
cnt = 0;
}
}
else
{
cnt++;
if(s[i+1]!= 'o')
{
if(len > 0 && now[len-1] < 0)
{
now[len-1] -= cnt;
cnt = 0;
continue;
}
now[len++] = -cnt;
cnt = 0;
}
}
}
ll w = 0;
ll ans = 0;
if(now[len-1] < 0)
{
now[--len] = 0;
}
now[len+1] = 0;
dp[len+1] = 0;
for(int i = len-1;i >= 0;i--)
{
if(now[i] > 0)
{
dp[i] = now[i+2]== 0?0:dp[i+2]/now[i+2]*now[i] + now[i]*abs(now[i+1])*w;
ans+=dp[i];
w+=now[i];
}
}
cout <<ans;
return 0;
}