Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- ifstream fin("traseucal.in");
- ofstream fout("traseucal.out");
- int n,m,a[25][25],dx[8]={-1,1,2,2,1,-1,-2,-2},dy[8]={2,2,1,-1,-2,-2,-1,1},ic,jc,ok=1;
- void citire()
- {
- fin>>n>>m;
- for(int i=1;i<=n;i++)
- for(int j=1;j<=m;j++){
- fin>>a[i][j];
- if(a[i][j]==1)a[i][j]=-1;
- }
- }
- void matr()
- {
- for(int i=1;i<=n;i++){
- for(int j=1;j<=m;j++)
- if(a[i][j]==-1)fout<<"0 ";
- else fout<<a[i][j]<<" ";
- fout<<'\n';
- }
- }
- int interior(int x,int y)
- {
- return(x>0&&x<=n&&y>0&&y<=m);
- }
- int sol(int x,int y)
- {
- return(x==n&&y==m);
- }
- void bkt(int x,int y,int k)
- {
- a[x][y]=k;
- if(sol(x,y)){
- matr();
- ok=0;
- }
- else{
- for(int i=0;i<8&&ok;i++){
- int iv=x+dx[i];
- int jv=y+dy[i];
- if(interior(iv,jv)&&a[iv][jv]==0)bkt(iv,jv,k+1);
- }
- }
- a[x][y]=0;
- }
- int main()
- {
- citire();
- bkt(1,1,1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement