You are on page 1of 1

#include <fstream>

using namespace std;


ifstream f("labirint.in");
ofstream g("labirint.out");
int a[101][101],n,m,x,y,xx,yy;
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};
bool continua(){
if(a[xx][yy]==0)return true;return false;
}
bool solutie(){
if(xx==1||xx==n||yy==1||yy==m)return true;return false;
}
void tipar(){
int i,j;
for(i=1;i<=n;i++){
for(j=1;j<=m;j++)
g<<a[i][j]<<" ";g<<endl;}
g<<endl;
}
void back(){
int i;
for(i=0;i<4;i++){
xx+=dx[i];
yy+=dy[i];
if(continua()){
a[xx][yy]=2;
if(solutie())tipar();
back();
a[xx][yy]=0;
}
xx-=dx[i];yy-=dy[i];
}
}
int main()
{
int i,j;
f>>n>>m>>x>>y;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)f>>a[i][j];
xx=x;yy=y;a[xx][yy]=3;
for(i=0;i<=n+1;i++)a[i][0]=a[i][m+1]=1;
for(j=0;j<=m+1;j++)a[0][j]=a[n+1][j]=1;
back();
return 0;
}

You might also like