Documente Academic
Documente Profesional
Documente Cultură
lee.in
463116
000010
001100
001100
010000
lee.out
5
31
22
13
14
25
16
*/
#include<fstream>
#include<iostream>
using namespace std;
ifstream f("lee.in");
ofstream g("lee.out");
int t[1001][1001],a[1001][1001],c,pas,is,js,id,jd,x,y,xx,yy,n,m,inf, drumx[1001],drumy[1001],k;
int main ()
{ int i,j,k,l;
f>>n>>m;
f>>is>>js>>id>>jd;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
f>>t[i][j];
inf=n*m+1;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
a[i][j]=m*n+1;
if(a[id][jd]!=inf)
{
x=n;
y=m;
c=0;
}
}
pas++;
} //sf. corp while
if(a[id][jd]==inf) g<<"Nu exista solutie"<<endl;
else g<<a[id][jd]<<endl;
}
// afisare drum
// pornesc de la sfarsit spre inceput
x=id;
y=jd;
// in vectorii drumx[] si drumy[] retin coordonatele
k=1;
drumx[k]=id;
drumy[k]=jd;
while(x!=is&&y!=js)
for(i=0; i<8; i++)
{
xx=x-dx[i];
yy=y-dy[i];
if(a[xx][yy]+1==a[x][y])
{
k++;
drumx[k]=xx;
drumy[k]=yy;
// actualizez
x=xx;
y=yy;
break; // opresc for
}
}
for(i=k; i>=1; i--)
g<<drumx[i]<<" "<<drumy[i]<<'\n';
return 0;
}