Pagini recente » Cod sursa (job #683234) | Cod sursa (job #230613) | Cod sursa (job #2525242) | Cod sursa (job #3190535) | Cod sursa (job #122699)
Cod sursa(job #122699)
#include <stdio.h>
struct gaina
{
int x,y;
};
int d[180][180];
gaina cdg[40000];
int n,m,x1,y1,x2,y2;
int dl[]={-1,0,1,0};
int dc[]={0,1,0,-1};
int main()
{
FILE *in = fopen("alee.in","r");
FILE *out = fopen("alee.out","w");
int x,i,y,j;
fscanf(in,"%d%d",&n,&m);
for (i=0; i<=n+1; i++)
{
d[0][i]=-1;
d[i][0]=-1;
d[n+1][i]=-1;
d[i][n+1]=-1;
}
for (i=0; i<m; i++)
{
fscanf(in,"%d%d",&x,&y);
d[x][y]=-1;
}
fscanf(in,"%d%d%d%d",&x1,&y1,&x2,&y2);
m=1;
cdg[0].x=x1;
cdg[0].y=y1;
for (i=0; i<m; i++)
for (j=0; j<4; j++)
if(d[cdg[i].x+dl[j]][cdg[i].y+dc[j]]==0)
{
cdg[m].x=cdg[i].x+dl[j];
cdg[m].y=cdg[i].y+dc[j];
m++;
d[cdg[i].x+dl[j]][cdg[i].y+dc[j]]=d[cdg[i].x][cdg[i].y]+1;
}
fprintf(out,"%d\n",d[x2][y2]+1);
fclose(in);
fclose(out);
return 0;
}