Pagini recente » Cod sursa (job #1856200) | Cod sursa (job #2648375) | Cod sursa (job #1552201) | Cod sursa (job #1225317) | Cod sursa (job #2327966)
#include <fstream>
#define maxx 999999
using namespace std;
ifstream f("alee.in");
ofstream g("alee.out");
bool viz[177][177];
short dx[]={1,-1,0,0},dy[]={0,0,1,-1},m[177][177];
void lee(int x,int y)
{
for(int i=0;i<4;i++)
{
if(viz[x+dx[i]][y+dy[i]]==0)
{
m[x+dx[i]][y+dy[i]]=m[x][y]+1;
viz[x+dx[i]][y+dy[i]]=1;
lee(x+dx[i],y+dy[i]);
}
else
{
if(m[x+dx[i]][y+dy[i]]>m[x][y]+1)
{
m[x+dx[i]][y+dy[i]]=m[x][y]+1;
lee(x+dx[i],y+dy[i]);
}
}
}
}
int main()
{
int n,p,i;
f>>n>>p;
for(i=1;i<=p;i++)
{
int x,y;
f>>x>>y;
viz[x][y]=1;
}
int x1,y1,x2,y2;
f>>x1>>y1>>x2>>y2;
for(i=0;i<=n+1;i++)
{
viz[i][n+1]=1;
viz[i][0]=1;
viz[0][i]=1;
viz[n+1][i]=1;
}
viz[x1][y1]=1;
m[x1][y1]=1;
lee(x1,y1);
g<<m[x2][y2];
return 0;
}