#include<bits/stdc++.h> using namespace std; int main() { int samo=0; int spol=0; int znak; string w; cin>>w; int n = w.size(); long long wynik=0; int last=-1; int start; for(int i=0;i<n;i++) { znak=(int)(w[i]); //cout<<znak<<endl; switch(znak) { case 97: samo++; spol=0; break;//a case 101: samo++; spol=0; break;//e case 105: samo++; spol=0; break;//i case 111: samo++; spol=0; break;//o case 117: samo++; spol=0; break;//u case 121: samo++; spol=0; break;//y default: spol++; samo=0; break;//spolgloski } if(spol>=3 || samo>=3) { //cout<<i<<" "<<znak<<" "<<w[i]<<" "<<spol<<" "<<samo<<endl; start = i-2; //pierwsza litera 3-znakowego ciagu //cout<<start<<" "<<last<<" "<<n<<i<<endl; wynik += (start-last)*(n-i); last = start; } } cout<<wynik; return 0; }
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 | #include<bits/stdc++.h> using namespace std; int main() { int samo=0; int spol=0; int znak; string w; cin>>w; int n = w.size(); long long wynik=0; int last=-1; int start; for(int i=0;i<n;i++) { znak=(int)(w[i]); //cout<<znak<<endl; switch(znak) { case 97: samo++; spol=0; break;//a case 101: samo++; spol=0; break;//e case 105: samo++; spol=0; break;//i case 111: samo++; spol=0; break;//o case 117: samo++; spol=0; break;//u case 121: samo++; spol=0; break;//y default: spol++; samo=0; break;//spolgloski } if(spol>=3 || samo>=3) { //cout<<i<<" "<<znak<<" "<<w[i]<<" "<<spol<<" "<<samo<<endl; start = i-2; //pierwsza litera 3-znakowego ciagu //cout<<start<<" "<<last<<" "<<n<<i<<endl; wynik += (start-last)*(n-i); last = start; } } cout<<wynik; return 0; } |