#include <stdio.h>
char tt[200002];
long long int d;
long long int a[100000],b[100000];
long long int k,r;
void wczytaj(void)
{
int i,j,z;
scanf("%s",tt);
i=0;
while(tt[i]>='a' && tt[i]<='z')
i++;
d=i;
for(i=d;i>=1;i--)
if(tt[i-1]=='a' || tt[i-1]=='e' || tt[i-1]=='i' || tt[i-1]=='o' || tt[i-1]=='u' || tt[i-1]=='y') tt[i]=0; else tt[i]=1;
tt[d+1]=-1;
k=0; i=1;
if(d>2)
{
while(i<d)
{
j=0;
z=tt[i]; while((i+j<=d) && (tt[i+j]==z)) j++;
if(j>=3) {a[k]=i; b[k]=i+j-1; k++;}
i+=j;
}
}
return;
}
int main()
{
int i,m;
long long int S=0;
r=0;
wczytaj();
for(i=0;i<k;++i)
{
S = S + (a[i]-r)*(d-a[i]-1);
m = b[i]-a[i]-2;
if (m>0) S = S + (m*(2*d-a[i]-b[i]-1))/2;
r=b[i]-2;
}
printf("%lld\n",S);
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | #include <stdio.h> char tt[200002]; long long int d; long long int a[100000],b[100000]; long long int k,r; void wczytaj(void) { int i,j,z; scanf("%s",tt); i=0; while(tt[i]>='a' && tt[i]<='z') i++; d=i; for(i=d;i>=1;i--) if(tt[i-1]=='a' || tt[i-1]=='e' || tt[i-1]=='i' || tt[i-1]=='o' || tt[i-1]=='u' || tt[i-1]=='y') tt[i]=0; else tt[i]=1; tt[d+1]=-1; k=0; i=1; if(d>2) { while(i<d) { j=0; z=tt[i]; while((i+j<=d) && (tt[i+j]==z)) j++; if(j>=3) {a[k]=i; b[k]=i+j-1; k++;} i+=j; } } return; } int main() { int i,m; long long int S=0; r=0; wczytaj(); for(i=0;i<k;++i) { S = S + (a[i]-r)*(d-a[i]-1); m = b[i]-a[i]-2; if (m>0) S = S + (m*(2*d-a[i]-b[i]-1))/2; r=b[i]-2; } printf("%lld\n",S); return 0; } |
English