Pagini recente » Cod sursa (job #2674369) | Cod sursa (job #562931) | Cod sursa (job #926054) | Cod sursa (job #2728803) | Cod sursa (job #1582658)
#include <fstream>
using namespace std;
ifstream fin("alee.in");
ofstream fout("alee.out");
struct coada
{
int l,c;
}C[30976],ps,pf;
int a[176][176], n, m;
int dl[]={-1, 0, 1, 0};
int dc[]={0, 1, 0, -1};
void citire()
{
int m,x,y,i;
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>x>>y;
a[x][y]=-1;
}
fin>>ps.l>>ps.c>>pf.l>>pf.c;
}
void bordare()
{
int i;
for(i=1;i<=n;i++) a[0][i]=a[i][0]=a[i][n+1]=a[n+1][i]=-1;
}
void LEE()
{
int p,u,i;
coada v,z;
p=u=0;
a[ps.l][ps.c]=1;
C[0]=ps;
while(p<=u && a[pf.l][pf.c]==0)
{
v=C[p];
p++;
for(i=1;i<=4;i++)
{
z.l=v.l+dl[i];
z.c=v.c+dc[i];
if(a[z.l][z.c]==0)
{
a[z.l][z.c]=a[v.l][v.c]+1;
u++;
C[u]=z;
}
}
}
}
int main()
{
citire();
bordare();
LEE();
fout<<a[pf.l][pf.c];
return 0;
}