Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #define dim 8
- using namespace std;
- ofstream g("knighttour.out");
- int deplx[8]={1,2,2,1,-1,-2,-2,-1},deply[8]={2,1,-1,-2,-2,-1,1,2};
- int a[dim][dim],n=1;
- bool valid(int xn, int yn)
- {
- if (xn>=0 && yn>=0 && xn<dim && yn<dim && a[xn][yn]==0)
- return true;
- return false;
- }
- bool solutie()
- {
- if (n==dim*dim+1 && (a[1][2]==dim*dim || a[2][1]==dim*dim))
- return true;
- return false;
- }
- void tipar()
- {
- for (int i=0;i<dim;i++)
- {
- for (int j=0;j<dim;j++)
- {
- g<<a[i][j]<<' ';
- if (a[i][j]<10)
- g<<' ';
- }
- g<<'\n';
- }
- g<<'\n';
- }
- void bck(int x, int y)
- {
- int xn,yn;
- a[x][y]=n++;
- if (solutie())
- tipar();
- else
- {
- for (int i=0;i<8;i++)
- {
- xn=x+deplx[i];
- yn=y+deply[i];
- if (valid(xn,yn))
- bck(xn,yn);
- }
- }
- a[x][y]=0;
- n--;
- }
- int main()
- {
- bck(0,0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement