func_code_string: #include <bits/stdc++.h>   const int INF = 0x3f3f3f3f;   const long long int INFLL = 0x3f3f3f3f3f3f3f3fll;   long long int getint() {     long long int ret = 0;     bool f = 0;     char c;     while ((c = getchar()) <  0  || c >  9 )       if (c ==  - ) f ^= 1;     while (c >=  0  && c <=  9 ) {       ret = ret * 10 + c -  0 ;       c = getchar();     }     return f ? -ret : ret;   }   using namespace std;   const int MAXN = 100;   long long int f[MAXN + 10][2];   char s[MAXN + 10];   int main() {     scanf( %s , s + 1);     int n = strlen(s + 1);     f[1][0] = 1;     for (int i = 2; i <= n; ++i) {       if (s[i - 1] ==  A ) f[i][0] += f[i - 1][0];       if (s[i - 1] ==  B  && s[i] ==  A ) f[i][1] += f[i - 1][0];       if (s[i] ==  B ) f[i][1] += f[i - 1][1];       f[i][0] += f[i - 1][1];     }     long long int ans = f[n][1];     if (s[n] ==  A ) ans += f[n][0];     memset(f, 0, sizeof f);     f[1][1] = 1;     for (int i = 2; i <= n; ++i) {       if (s[i - 1] ==  A ) f[i][0] += f[i - 1][0];       if (s[i - 1] ==  B  && s[i] ==  A ) f[i][1] += f[i - 1][0];       if (s[i] ==  B ) f[i][1] += f[i - 1][1];       f[i][0] += f[i - 1][1];     }     if (s[1] ==  B )       ans += f[n][1];     else if (s[n] ==  B )       ans += f[n][0];     printf( %I64d n , ans);   }   