B種は,">^"の後に "Q="が1個以上並んだ後、"~~"で終わる。
A種の例: >'====#====~ >'==#==~
B種の例: >^Q=Q=Q=Q=~~ >^Q=Q=~~
/************************
* 2012/07/10 *
* AOJ_Volume1_0139 *
* Snakes *
* crane *
*************************/
#include<iostream>
#include<string>
using namespace std;
int main(){
int n;
cin >> n;
while(n--){
string input;
cin >> input;
if(input.length() <5){
cout << "NA" << endl;
}else{
string s = input.substr(0,2); //どの蛇か
char e = input.at(input.length()-1); //A B尾判定
char e2 = input.at(input.length()-2);//B 尾判定
if(input.length() % 2 != 0){//lengthが偶数出ないものはAでもBでもない
cout << "NA" << endl;
}else if(s == ">'" && e == '~'){ //SnakeA
bool frag_A = true;
for(int i=2; i<input.length()/2; i++){
char c1 = input.at(i); //前から
char c2 = input.at(input.length()-i);//後ろから
if(c1 != '=' || c2 != '='){
cout << "NA" << endl;
frag_A = false;
break;
}
}
char a = input.at(input.length()/2 );
if(a == '#' && frag_A) cout << "A" << endl;
}else if(s == ">^" && e == '~' && e2 == '~'){ //SnakeB
bool frag_B = true;
for(int i=2; i<input.length()-2; i+=2){
string s1 = input.substr(i, 2);
if(s1 != "Q="){
cout << "NA" << endl;
frag_B = false;
break;
}
}
if(frag_B)cout << "B" << endl;
}else cout << "NA"<< endl;
}
}
return 0;
}
0 件のコメント:
コメントを投稿