Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h>
- using namespace std;
- const int x[8]={-1, 1, 2, 2, 1, -1, -2, -2};
- const int y[8]={2, 2, 1, -1, -2, -2, -1, 1};
- int n, sol[100][2], esteZero[25][25];
- int solutie (int k){
- if (k==n*n)
- return 1;
- else
- return 0;
- }
- void tipar(int k){
- for (int i=1; i<=k-1; i++)
- cout<<sol[i][0]<<" "<<sol[i][1]<<endl;
- }
- int valid (int k, int linie, int coloana){
- if (linie<=n && linie>=1 && coloana<=n && coloana>=1 && esteZero[linie][coloana]==0)
- return 1;
- else
- return 0;
- }
- void init (int k, int linie, int coloana){
- sol[k][0]=linie;
- sol[k][1]=coloana;
- }
- void back(int k, int lin, int col){
- int linie,coloana,i;
- if (solutie(k)){
- tipar(k);
- exit (EXIT_SUCCESS);
- }
- else{
- init (k, lin, col);
- for (i=0; i<=7; i++){
- linie=lin+x[i];
- coloana=col+y[i];
- if (valid (k, linie, coloana)){
- esteZero[linie][coloana]=1;
- back(k+1,linie,coloana);
- esteZero[linie][coloana]=0;
- }
- }
- }
- }
- int main(){
- cout<<"n=";
- cin>>n;
- back(1,1,1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement