题目大意:输入一个整数n,表示有n组测试数据,
每组第一行输入一个整数x表示该组测试一共有x页,接下来输入x行,每行表示一页,
每页或者以C开头,或者以E开头,中间用引号括起一段文字,注意第一行必须以C开头,以C开头的末尾输入两个数字a,b表示该页完后可以跳转到第a页或第b页,
以E开头的末尾输入一个单词,或者是HAPPY或者是GRISLY(有且仅有一页以HAPPY结尾),
现在要求你根据输入找出以C开头以E结尾,且E的行末为HAPPY的路径,输出路径上每一页中间引号里面的内容,不包含引号。
用队列广搜:
#include<stdio.h>
#include<string.h>
char str[150][300];//原来的数组名为story,结果不能正常运行,story是系统保留字么?知道的回复一下
int queue[150],pre[150],re[150],ff,tt,aa,bb;//pre[i]存第i行的祖先
int main()
{
int t,x,i,len,count=0,j;
scanf("%d",&t);
while(t--)
{
count++;
scanf("%d",&x);
getchar();
for(i=1;i<=x;i++)
gets(str[i]);//读入内容
queue[0]=1;//第一行入队
memset(pre,0,sizeof(pre));
ff=tt=0;//ff表示对头tt表示结尾
while(1)
{
len=strlen(str[