小老鼠

来源:互联网 发布:超五类网络水晶头 编辑:程序博客网 时间:2024/04/28 03:07
#include<stdio.h>
#include<iostream>
#include<queue>
using namespace std;


int x1,y1,x2,y2;
int num=0;
char map[14][14]={0};
int m[14][14]={0};
queue <int> x;
queue <int> y;


void input();
void bfs();
void output();




int main()
{


 input();
 bfs();
 
 return 0;
}


void input()
{
 int i,j;
 
 cin>>x1>>y1>>x2>>y2;
 x.push(x1);
 y.push(y1);
 
 for(i=1;i <= 12 ;i++)
 {
  for(j=1;j <= 12;j++)
  {
   cin>>map[i][j];
  }
 }
}




void bfs()
{
int i,j;
int flag=1;
while(flag == 1)
{
if(m[x2][y2] != 0)
{
cout<<m[x2][y2]<<endl;
break;
}
x1=x.front();
x.pop();
y1=y.front();
y.pop();

map[x1][y1]='X';

if(map[x1+1][y1] == '.')
{
x.push(x1+1);
y.push(y1);
m[x1+1][y1]=m[x1][y1]+1;
}
if(map[x1-1][y1] == '.')
{
x.push(x1-1);
y.push(y1);
m[x1-1][y1]=m[x1][y1]+1;
}
if(map[x1][y1+1] == '.')
{
x.push(x1);
y.push(y1+1);
m[x1][y1+1]=m[x1][y1]+1;
}
if(map[x1][y1-1] == '.')
{
x.push(x1);
y.push(y1-1);
m[x1][y1-1]=m[x1][y1]+1;
}

}
 
}