Pagini recente » Cod sursa (job #1258032) | Cod sursa (job #2806591) | Cod sursa (job #1468631) | Cod sursa (job #720951) | Cod sursa (job #2109983)
#include <fstream>
using namespace std;
ifstream in ("alee.in");
ofstream ou ("alee.out");
int v[177][177],n,m;
struct coord{
int lin,col;
};
coord gate,q[180*180],p,w;
int vl[]={-1,0,1,0};
int vc[]={0,1,0,-1};
int prim=1,ultim=1;
int main()
{
int a,b,i,j;
in>>n>>m;
for (i=1;i<=m;++i)
{
in>>a>>b;
v[a][b]=-1;
}
for (i=0;i<=n+1;++i)
{
v[i][0]=v[i][n+1]=v[0][i]=v[n+1][i]=-1;
}
in>>gate.lin>>gate.col>>a>>b;
q[1].lin=gate.lin;
q[1].col=gate.col;
v[gate.lin][gate.col]=1;
while (prim<=ultim && v[a][b]==0)
{
p.lin=q[prim].lin;
p.col=q[prim].col;
prim++;
for (i=0;i<=3;++i)
{
w.lin=p.lin+vl[i];
w.col=p.col+vc[i];
if (v[w.lin][w.col]==0)
{
v[w.lin][w.col]=v[p.lin][p.col]+1;
ultim++;
q[ultim].lin=w.lin;
q[ultim].col=w.col;
}
}
}
ou<<v[a][b]<<"\n";
ou.close();
return 0;
}