sp;
}
num += fact[6-i-1] * temp;
}
return num;
}
int BFS(char src[],char dest[])
{
int vis[720]={0},step[720],front,rear,s0,s1,ts,i;
char q[720][7],cur[7],next[7],tmp;
front=rear=0;
s1=hash(dest);
strcpy(q[rear++],src);
s0=hash(src);
vis[hash(src)]=1;
step[s0]=0;
while (front<rear)
{
strcpy(cur,q[front++]); // 出队列
s0=hash(cur);
if (s0==s1) // 达到目标状态
return step[s0];
for (i=0;i<6-1;i++)
{
strcpy(next,cur);
tmp=next[i]; next[i]=next[i+1];next[i+1]=tmp; // 交换位置i和i+1中的数字
ts=hash(next);
if (vis[ts]==0) // 状态未出现过
{
vis[ts]=1;
step[ts]=step[s0]+1; // 记录步数
strcpy(q[rear++],next);
}
}
}
}
int main()
{
char src[7],dest[7];
while(scanf("%s%s",src,dest)!=EOF)
{
&n