题意:一个细胞有三种分裂状态,如果最后形成的新细胞不是由两种的正确的分裂方式形成的,就是变异。给出一个字符串判断是什么分裂状态(四种)。
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
char s[1005];
int dfs(int l, int r) {
if(r-l>=2 && s[l]=='B' && s[r]=='A') {
if(dfs(l+1,r-1))
return 3;
}
if(r-l>=2 && s[r-1]=='A'&&s[r]=='B' && dfs(l,r-2)) return 2;
if(l==r && s[l]=='A') return 1;
if(r-l>=1 && s[r]=='A' && dfs(l,r-1)) return 1;
return 0;
}
int main() {
int kase;
scanf("%d", &kase);
while(kase--) {
cin>>s;
int ans = dfs(0,strlen(s)-1);
switch(ans) {
case 0:printf("MUTANT\n");break;
case 1:printf("SIMPLE\n");break;
case 2:printf("FULLY-GROWN\n");break;
case 3:printf("MUTAGENIC\n");break;
}
}
return 0;
}