Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define N 15
- using namespace std;
- ifstream fin("traseucal.in");
- ofstream fout("traseucal.out");
- int a[N][N],n,m;
- int dl[]={-2, -2, 2, 2, -1, -1, 1, 1};
- int dc[]={-1, 1, -1, 1, -2, 2, -2, 2};
- void Citire()
- {
- fin>>n>>m;
- for(int i=1;i<=n;i++)
- for(int j=1;j<=m;j++)
- {
- fin>>a[i][j];
- a[i][j]=-a[i][j];
- }
- }
- void Afisare()
- {
- for(int i=1;i<=n;i++)
- {
- for(int j=1;j<=m;j++)
- if(a[i][j]<0) fout<<"0 ";
- else fout<<a[i][j]<<" ";
- fout<<"\n";
- }
- }
- bool Inside(int i, int j){return 1<=i &&i<=n &&1<=j &&j<=m;}
- void Back(int l, int c, int k)
- {
- int ln,cn;
- if(a[l][c]==0)
- {
- a[l][c]=k;
- if(l==n && c==m){Afisare(); return;}
- else
- {
- for(int i=0;i<8;i++)
- {
- ln=l+dl[i];
- cn=c+dc[i];
- if(Inside(ln,cn)) Back(ln,cn,k+1);
- }
- }
- a[l][c]=0;
- }
- }
- void Zero()
- {
- for(int i=1;i<=n;i++)
- {
- for(int j=1;j<=m;j++) fout<<"0 ";
- fout<<"\n";
- }
- }
- int main()
- {
- Citire();
- Back(1,1,1);
- //Zero();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment