#include<iostream>
using namespace std;
const int maxn = 10000;
struct mess{
char start,end;
};
struct mess M[maxn];
int visted[maxn];
bool flag ;
int n;
void dfs(char ch)
{
if(flag)
return ;
if(ch == 'm')
{
flag = true;
//printf("sdasdasd");
return ;
}
int i,j;
for(i = 0; i <n;i++)
{
if(M[i].start == ch && visted[i]== 0)
{
visted[i] = 1;
dfs(M[i].end);
visted[i] = 0;
}
}
}
int main()
{
//freopen("out.txt","w",stdout);
int i,len;
char str[100];
while(scanf("%s",str)!=EOF)
{
flag = false; i = 0;
memset(visted,0,sizeof(visted));
while(strcmp(str,"0")!=0)
{
len = strlen(str);
M[i].start = str[0];
M[i].end = str[len-1];
i++;scanf("%s",str);
//printf("%d",strlen(str));
}
n = i;//n= i-1; 最后发现错误在这里
dfs('b');
printf(flag?"Yes.\n":"No.\n");
}
return 0;
}
posted on 2010-10-22 14:09
付翔 阅读(367)
评论(0) 编辑 收藏 引用 所属分类:
ACM 数据结构 、
ACM 水题