题目传送门
/*
水题:遍历一边先找AB,再BA,再遍历一边先找BA,再AB,两种情况满足一种就YES
*/
#include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <vector>
#include <map>
#include <queue>
#include <set>
#include <string>
#include <stack>
using namespace std;
typedef long long ll;
const int MAXN = 1e5 + ;
const int INF = 0x3f3f3f3f;
char s[MAXN];
int main(void) //Codeforces Round #306 (Div. 2) A. Two Substrings
{
while (scanf ("%s", s) == )
{
bool ok1 = false, ok2 = false, ok3 = false, ok4 = false;
int len = strlen (s); int p = ;
for (int i=; i<len; ++i)
{
if (i < len - && !ok1 && s[i] == 'A' && s[i+] == 'B')
{
ok1 = true; i++;
}
else if (i < len - && ok1 && s[i] == 'B' && s[i+] == 'A')
{
ok2 = true; break;
}
}
for (int i=; i<len; ++i)
{
if (i < len - && !ok3 && s[i] == 'B' && s[i+] == 'A')
{
ok3 = true; i++;
}
else if (i < len - && ok3 && s[i] == 'A' && s[i+] == 'B')
{
ok4 = true; break;
}
}
if ((ok1 && ok2) || (ok3 && ok4)) puts ("YES");
else puts ("NO");
}
return ;
}
/*
ABA
BACFAB
AXBYBXA
*/