Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <cstdlib>
- using namespace std;
- ifstream fin("traseucal.in");
- ofstream fout("traseucal.out");
- const int di[8]={-1,1,2,2,1,-1,-2,-2};
- const int dj[8]={-2,-2,-1,1,2,2,1,-1};
- int a[101][101];
- int x[1001][3],n,m;
- int is,js,ib,jb;
- void afis()
- {
- for (int i=1;i<=n;i++)
- {
- for(int j=1;j<=m;j++)
- {
- if(a[i][j]==1)
- a[i][j]=0;
- a[1][1]=1;
- fout<<a[i][j]<<' ';
- }
- fout<<'\n';
- }
- }
- void citire()
- {
- fin>>n>>m;
- is=1;
- js=1;
- ib=n;
- jb=m;
- for(int i=1;i<=n;i++)
- for(int j=1;j<=m;j++)
- fin>>a[i][j];
- }
- int inside(int i,int j)
- {
- return i>=1&&i<=n&&j>=1&&j<=m;
- }
- void backtracking(int i,int j,int pas)
- {
- int inou,jnou,k;
- if(i==ib&&j==jb)
- {
- afis();
- exit(0);
- }
- else
- for(k=0;k<8;k++)
- {
- inou=i+di[k];
- jnou=j+dj[k];
- if(inside(inou,jnou)&&a[inou][jnou]==0)
- {
- a[inou][jnou]=pas;
- x[pas][1]=inou;
- x[pas][2]=jnou;
- backtracking(inou,jnou,pas+1);
- a[inou][jnou]=0;
- }
- }
- }
- int main()
- {
- citire();
- backtracking(is,js,2);
- for (int i=1;i<=n;i++)
- {
- for(int j=1;j<=m;j++)
- fout<<0<<' ';
- fout<<'\n';
- }
- fin.close();
- fout.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement