#include <iostream>
using namespace std;
struct konik
{
static bool ruszSkoczka(int x, int y, int nr);
};
const int dl_szachownica=5;
int szachownica[dl_szachownica][dl_szachownica]={{0}};
bool konik::ruszSkoczka(int x, int y, int nr)
{
const int rx[8] = {1,2,2,1,-1,-2,-2,-1};
const int ry[8] = {-2,-1,1,2,2,1,-1,-2};
int tmp_x, tmp_y;
szachownica[x][y] = nr;
if(nr == dl_szachownica * dl_szachownica)
{
for(int i=0 ; i<dl_szachownica ; i++)
{
for(int j=0 ; j<dl_szachownica ; j++)
cout << szachownica[j][i] << " ";
cout << endl;
}
return 1;
}
else
{
for(int i = 0; i < 8; i++)
{
tmp_x = x + rx[i];
tmp_y = y + ry[i];
if(tmp_x >= 0 && tmp_x < dl_szachownica && tmp_y >= 0 && tmp_y <= dl_szachownica && szachownica[tmp_x][tmp_y] == 0)
{
if(ruszSkoczka(tmp_x, tmp_y, nr+1) == true)
{
return true;
}
}
}
szachownica[x][y] = 0;
}
return false;
}
int main()
{
konik::ruszSkoczka(0,0,1);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IGtvbmlrCnsKCXN0YXRpYyBib29sIHJ1c3pTa29jemthKGludCB4LCBpbnQgeSwgaW50IG5yKTsKfTsKY29uc3QgaW50IGRsX3N6YWNob3duaWNhPTU7CmludCBzemFjaG93bmljYVtkbF9zemFjaG93bmljYV1bZGxfc3phY2hvd25pY2FdPXt7MH19OwoKYm9vbCBrb25pazo6cnVzelNrb2N6a2EoaW50IHgsIGludCB5LCBpbnQgbnIpCnsKICAgIGNvbnN0IGludCByeFs4XSA9IHsxLDIsMiwxLC0xLC0yLC0yLC0xfTsKICAgIGNvbnN0IGludCByeVs4XSA9IHstMiwtMSwxLDIsMiwxLC0xLC0yfTsKICAgIGludCB0bXBfeCwgdG1wX3k7CiAgICBzemFjaG93bmljYVt4XVt5XSA9IG5yOwogICAgaWYobnIgPT0gZGxfc3phY2hvd25pY2EgKiBkbF9zemFjaG93bmljYSkKICAgIHsKICAgICAgICBmb3IoaW50IGk9MCA7IGk8ZGxfc3phY2hvd25pY2EgOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBmb3IoaW50IGo9MCA7IGo8ZGxfc3phY2hvd25pY2EgOyBqKyspCiAgICAgICAgICAgICAgICBjb3V0IDw8IHN6YWNob3duaWNhW2pdW2ldIDw8ICIgIjsKICAgICAgICAgICAgY291dCA8PCBlbmRsOwogICAgICAgIH0KICAgIHJldHVybiAxOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCA4OyBpKyspCiAgICAgICAgewogICAgICAgICAgICB0bXBfeCA9IHggKyByeFtpXTsKICAgICAgICAgICAgdG1wX3kgPSB5ICsgcnlbaV07CiAgICAgICAgICAgIGlmKHRtcF94ID49IDAgJiYgdG1wX3ggPCBkbF9zemFjaG93bmljYSAmJiB0bXBfeSA+PSAwICYmIHRtcF95IDw9IGRsX3N6YWNob3duaWNhICYmIHN6YWNob3duaWNhW3RtcF94XVt0bXBfeV0gPT0gMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYocnVzelNrb2N6a2EodG1wX3gsIHRtcF95LCBucisxKSA9PSB0cnVlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHN6YWNob3duaWNhW3hdW3ldID0gMDsKICAgIH0KICAgIHJldHVybiBmYWxzZTsKfQoKaW50IG1haW4oKQogIHsKICAga29uaWs6OnJ1c3pTa29jemthKDAsMCwxKTsKICAgcmV0dXJuIDA7CiAgfQ==