#include<bits/stdc++.h> using namespace std; bool gloski[30]; long long f(long long x){ return (x-1)*(x-2)/2; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); gloski[0]=1; gloski[4]=1; gloski[8]=1; gloski[14]=1; gloski[20]=1; gloski[24]=1; string t; cin>>t; int last=0; long long wynik=f(t.size()); for(int i=1; i<t.size()-1; i++){ if(gloski[t[i]-'a']==gloski[t[i-1]-'a'] and gloski[t[i]-'a']==gloski[t[i+1]-'a']){ wynik-=f(i+1-last); last=i; } } wynik-=f(t.size()-last); cout<<wynik; }
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 | #include<bits/stdc++.h> using namespace std; bool gloski[30]; long long f(long long x){ return (x-1)*(x-2)/2; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); gloski[0]=1; gloski[4]=1; gloski[8]=1; gloski[14]=1; gloski[20]=1; gloski[24]=1; string t; cin>>t; int last=0; long long wynik=f(t.size()); for(int i=1; i<t.size()-1; i++){ if(gloski[t[i]-'a']==gloski[t[i-1]-'a'] and gloski[t[i]-'a']==gloski[t[i+1]-'a']){ wynik-=f(i+1-last); last=i; } } wynik-=f(t.size()-last); cout<<wynik; } |