#include <iostream> #include <queue> using namespace std; queue<long long> wektor; queue <long long> koniec; int main() { ios_base::sync_with_stdio(0); string ciag; long long licznik=0, wynik=0; bool stan=0; cin>>ciag; if(ciag[0]=='a' || ciag[0]=='e' || ciag[0]=='i' || ciag[0]=='o'|| ciag[0]=='u' || ciag[0]=='y'){stan=1;} for(int i=0; i<ciag.length(); ++i) { if(ciag[i]=='a' || ciag[i]=='e' || ciag[i]=='i' || ciag[i]=='o'|| ciag[i]=='u' || ciag[i]=='y'){if(stan==1){++licznik;}else{stan=1;licznik=1;}} else{if(stan==0){++licznik;}else{stan=0;licznik=1;}} if(licznik==3){licznik=1;wektor.push(i-2);koniec.push(i);/*cout<<ciag[i-2]<<ciag[i-1]<<ciag[i]<<endl;*/i--;} } long long j=0,k=0, ilosc=ciag.length()-1; if(koniec.size()!=0){k=koniec.front();}else{k=ilosc+1;} for(int i=0;i<ciag.length();++i) { if(i-1==wektor.front()) { if(wektor.size()!=0){wektor.pop();} if(koniec.size()!=0){koniec.pop();if(koniec.size()!=0){k=koniec.front();}else{k=ilosc+1;}} } if(k==0){break;} // cout<<"znacznik: "<<i<<endl; // cout<<"koniec: "<<k<<endl; wynik+=(ilosc-k+1); // cout<<"wynik: "<<wynik<<endl<<endl; } cout<<wynik; //cout<<endl<<"dlugosc: "<<ilosc; }
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 | #include <iostream> #include <queue> using namespace std; queue<long long> wektor; queue <long long> koniec; int main() { ios_base::sync_with_stdio(0); string ciag; long long licznik=0, wynik=0; bool stan=0; cin>>ciag; if(ciag[0]=='a' || ciag[0]=='e' || ciag[0]=='i' || ciag[0]=='o'|| ciag[0]=='u' || ciag[0]=='y'){stan=1;} for(int i=0; i<ciag.length(); ++i) { if(ciag[i]=='a' || ciag[i]=='e' || ciag[i]=='i' || ciag[i]=='o'|| ciag[i]=='u' || ciag[i]=='y'){if(stan==1){++licznik;}else{stan=1;licznik=1;}} else{if(stan==0){++licznik;}else{stan=0;licznik=1;}} if(licznik==3){licznik=1;wektor.push(i-2);koniec.push(i);/*cout<<ciag[i-2]<<ciag[i-1]<<ciag[i]<<endl;*/i--;} } long long j=0,k=0, ilosc=ciag.length()-1; if(koniec.size()!=0){k=koniec.front();}else{k=ilosc+1;} for(int i=0;i<ciag.length();++i) { if(i-1==wektor.front()) { if(wektor.size()!=0){wektor.pop();} if(koniec.size()!=0){koniec.pop();if(koniec.size()!=0){k=koniec.front();}else{k=ilosc+1;}} } if(k==0){break;} // cout<<"znacznik: "<<i<<endl; // cout<<"koniec: "<<k<<endl; wynik+=(ilosc-k+1); // cout<<"wynik: "<<wynik<<endl<<endl; } cout<<wynik; //cout<<endl<<"dlugosc: "<<ilosc; } |