额,题目意思有点不好懂。。
就是细胞在正常情况的基础上,在右边长一个a是simple,在右边长ab是fullygrown,前面长a后面长b是mutagetic,这三种都是正常状态,其余的是异常mutant状态。
其他的就很简单了。。
#include<cstdio>
#include<cstring>
#include<algorithm>
#define MAX 10000
using namespace std;
char s[MAX],ans[4][20]={"MUTANT","SIMPLE","FULLY-GROWN","MUTAGENIC"};
int flag;
int dfs(int front,int rear)
{
if(front==rear)
{
if(s[front]=='A')
return 1;
else
return 0;
}
if(s[rear]=='A')
{
if(dfs(front,rear-1))
return 1;
}
if(s[rear]=='B'&&s[rear-1]=='A')
{
if(dfs(front,rear-2))
return 2;
}
if(s[rear]=='A'&&s[front]=='B')
{
if(dfs(front+1,rear-1))
return 3;
}
return 0;
}
int main()
{
int t,i,j;
scanf("%d",&t);
getchar();
while(t--)
{
scanf("%s",s);
flag=dfs(0,strlen(s)-1);
printf("%s\n",ans[flag]);
}
return 0;
}