Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;char s[1000000+5];int dp[1000000+5][3][2];int main(void){scanf("%s",s+1);int len=strlen(s+1);//aeiouaeioufor(int i=1;i<=len;++i){if(s[i]=='a'){dp[i][0][0]=dp[i-1][0][0]+1;dp[i][0][1]=dp[i-1][0][1]+1;for(int p=0;p<3;++p)for(int q=0;q<2;++q)if(p!=0)dp[i][p][q]=dp[i-1][p][q];}else if(s[i]=='e'){dp[i][1][0]=max(dp[i-1][1][0],dp[i-1][0][0])+1;dp[i][1][1]=max(dp[i-1][1][1],dp[i-1][0][1])+1;for(int p=0;p<3;++p)for(int q=0;q<2;++q)if(p!=1)dp[i][p][q]=dp[i-1][p][q];}else if(s[i]=='i'){dp[i][2][0]=max(dp[i-1][1][0],dp[i-1][0][0])+1;dp[i][2][0]=max(dp[i][2][0],dp[i-1][2][0]+1);dp[i][2][1]=max(dp[i-1][1][1],dp[i-1][0][1])+1;dp[i][2][1]=max(dp[i][2][1],dp[i-1][2][1]+1);for(int p=0;p<3;++p)