http://acm.hdu.edu.cn/showproblem.php?pid=1195
代码比较长, 但都是重复代码!!!
#include <iostream>
#include <cstring>
#include <cstdio>
#define INF 0x3f3f3f3f
#define BUG printf("here!\n")
using namespace std;
int q1[10005],q2[10005];
int vis[10005];
int front1,front2,tail1,tail2;
int num[5];
int num1[5];
int d[10005];
void tochar(int x)
{
num[0]=x/1000;
num[1]=x%1000/100;
num[2]=x%100/10;
num[3]=x%10;
}
int toint(int *num)
{
return num[0]*1000+num[1]*100+num[2]*10+num[3];
}
int bfs(int start,int end)
{
memset(vis,0,sizeof(vis));
memset(d,0,sizeof(d));
q1[0]=start;
q2[0]=end;
front1=front2=0;
tail1=tail2=1;
vis[start]=1;
vis[end]=2;
while(front1<tail1||front2<tail2)
{
int tmp&