Moze li neko da predlozi ideju ili neki hint da mi da oko optimizacije jer vec za 6x6 treba mu previse vremena.
#include <bits/stdc++.h>
using namespace std;
#define endl "\n"
#define ll long long
#define PB push_back
#define F first
#define S second
#define all(a) a.begin(), a.end()
#define MAX 8
#define Fast ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int tabla[MAX][MAX];
int n,m;
void printaj()
{
for(int i=0; i<n; ++i) {
for(int j=0; j<m; ++j) {
if(tabla[i][j]<10) cout<<' ';
cout<<tabla[i][j]<<' ';
}
cout<<endl;
}
cout<<endl;
}
bool safe(int i, int j)
{
if(i>=n || i<0 || j>=m || j<0) return 0;
if(tabla[i][j]) return 0;
return 1;
}
void f(int i, int j, int br)
{
tabla[i][j]=br;
if(br==n*m) {
printaj();
tabla[i][j]=0;
return;
}
if(safe(i+2,j+1)) f(i+2,j+1,br+1);
if(safe(i+1,j+2)) f(i+1,j+2,br+1);
if(safe(i-1,j+2)) f(i-1,j+2,br+1);
if(safe(i-2,j+1)) f(i-2,j+1,br+1);
if(safe(i-2,j-1)) f(i-2,j-1,br+1);
if(safe(i-1,j-2)) f(i-1,j-2,br+1);
if(safe(i+1,j-2)) f(i+1,j-2,br+1);
if(safe(i+2,j-1)) f(i+2,j-1,br+1);
tabla[i][j]=0;
}
int main()
{
Fast;
cin>>n>>m;
f(0,0,1);
return 0;
}
https://petlja.org/biblioteka/r/problemi/zbirka-napredni-nivo/skakaceva_tura