2015年6月30日 星期二

Codeforces Round #306 (Div. 2), problem: (A) Two Substrings



#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <set>
#include <vector>

using namespace std;

typedef long long int int64;

char buf[100001];
vector<int> aa, bb;

int main(){
    scanf("%s", buf);
    for(int lx = 0; buf[lx+1] != 0;lx++){
        if(buf[lx] == 'A' and buf[lx+1] == 'B') aa.push_back(lx);
        if(buf[lx+1] == 'A' and buf[lx] == 'B') bb.push_back(lx);
    }
    
    if(aa.size() == 0 or bb.size() == 0){
        puts("NO");
        return 0;
    }

    if(aa.size() + bb.size() >= 4){
        puts("YES");
        return 0;
    }
    
    bool ok = false;
    if(aa.size() + bb.size() == 2) ok = abs(aa[0]-bb[0]) >= 2;
    else{
        if(aa.size() == 1) ok = abs(bb[0]-bb[1]) >= 3;
        else ok = abs(aa[0]-aa[1]) >= 3;
    }

    puts(ok ? "YES" : "NO");

    return 0;
}

沒有留言:

張貼留言