queens 5.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/bin/sh
  2. #
  3. # solves the general case of the 8 queens problem;
  4. # invoke as queens -n, where n is a digit > 3
  5. #
  6. # self-extracting with granularity 77
  7. #
  8. # This program is free software; you can redistribute it and/or modify
  9. # it under the terms of the GNU General Public License as published by
  10. # the Free Software Foundation; version 3.
  11. #
  12. # This program is distributed in the hope that it will be useful,
  13. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. # GNU General Public License for more details.
  16. #
  17. # You should have received a copy of the GNU General Public License
  18. # along with this program; if not, write to the Free Software Foundation,
  19. # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  20. #\
  21. exec avram --par "$0" "$@"
  22. sSr{EIoAJGhuMstt{p^bsfW?kxhoooZIj_ggitNn_Ilxw{WVvJE_NW{Xpenxtrth{xgp_drzpkhgIzl
  23. K<ciz{wr{wsGI{djdpoxF[cwmF[cvRsHs[kFxJ^Dhv]ZExjtdSlKuxajnoZnzHtjElVr[]Agm?Uzmze
  24. {MwgoIqgIr_oNvYdHCo`a>\l[@MXdcyAvvyHnwxQwRiNLyfN`mt>yUHZfZT=jn[gfjokIG[GgFncGf`
  25. nf=]WVH=]=lVczJ=ZodkpkzKkkh?GMV^wGF\>B?OfB>`\][=cvKnSHgvkOKFnzpINaHxqL=?Jnlaoav
  26. HAxkuYVPKQJeQsQIusnrfKEhFEPF\n_CtJ[dzyEqngqGJgS[HlqqkyXnENXsQ\OPA=j<=KOPqQDjaO^
  27. hKoW{mXsQQqVQYDCIOO{QPi=[kwKOLpwxlnYIXAmSYZoQq{yUPHXCI<dOqQVdLd[fAxIgGgOKuOHh[Z
  28. jmoSAq[OhIQQSYSSo\\kQIVo>MZf[iPTXj>KKo<^m{qnxSUcfC`nOmK{YkQSzyq`qJGQFhnuzI=KAPn
  29. VEJkHh?QQcSNHVgSMQyuHPQKOQWqRwCqXQQXfdnXphQ=@AtkzvbXoKHnkQGOIFtoXEXBgpIHQYI[q[P
  30. QzSPrQuS_Yq=OHqQPlUz<dSsCHfmJnkTpngNe`wG\XyKy__IwAFqQSl{xYQZ@BXZILYc\dDsQQL@[^`
  31. vwFf@GnQ`_QR<FpmIWlvlp=KmQPQYdOZyO_qVKIJsQYX{X]wCP@qQQJCwKx{B<EHtbFQPg]]iDq{c?C
  32. =tO>oXYSmlwlS\ep@PPeLWhAMzywAvriPdBCl^AvKEHf``lgNOHpFkrPI^SiHjFvSqJjKAOI<BzJva@
  33. ddnoSs`yQIQOH?A_cxqFiF<@lQFf`[O@gesSGIJOl[lwlxAviWmqAAOF<xJWvaQSWOHfpdED<SYN\^n
  34. f<<oF`h]tzSPNfWdl[jK?=PoUupsjobIshC@@NxshQQIQPqDcp>@ePL?Jk@RlJxOPbxpAwlRrgQHhRI
  35. SK@qH\zw^h^FkX[iHnf>kdYVOF=D\NblkXFfOhf[aOHrZWd\pXA_@g?yqP[ylyjaikOqG\l<=GHWQKf
  36. Z<{QFjwUlSziSOG@Q=cWwUE^KV=qOW\x`k?oq?qNpgGDfoM]FettXfNbwN=cysupj^?cLwesK>dBp@g
  37. rssD_JEyxcoONqHFQPTlFAdzqCGKL\m[OOG@^Q=OTK?]PWdp^Ca`smX`<xmtIpyvHoHyPd{Dq=LqD@J
  38. v\EZvvDHUvAdeK@iPlIQykhsLIM@JswHSdhhogOGpEldQB`yZ[aMPAOVq<ArElNOi{YRUzRcFoqMXNE
  39. PqIQKPqKQYphBwl<\[uu^\fj=ZaHaMo[xiQS\?pGni\^RkDhGgOopptfKla=eK\ayIOFhXkAEprZXsz
  40. lIZrZSkKFzqr[oGNIOhFfHc?]q?Jx^Wf>]IGQadoEWQCcI{vGyYpcsYn[TPpJSYh?IIQPtqPoJ_{LvO
  41. pazfdhtPolsbgaPZXszxsSaMQyQayNX_nVt?osxoOQQPxqLD\A>a>OKNd[oIPS_K=?l^pjQMuo[hkaC
  42. yWazyf<{UqIZ`Z{CgCksHpqQQJqP>\mWkLHAvEQYSbg?dHgNuQCcIzhsYONaSSjvfcbM<X>]euRlO]q
  43. EPzvSQQQQQIQQM@PWpf[QPfqO@?KndniGaPZXsHQwSISOcWeMI^=K[K\YeGh`yZ@FkonZOOQQQP_PHU
  44. Jy=hSNivz\`KEOFXgNuQCcJNvnhmQE@pq{FnM<iQu=mKQpBaiSbKhoHSsIHQQPpq<@wn<EQQWY{NOP^
  45. @^enyGaPZQ<npRjyaTUPyDbiv\[YfD<unzUQgoZ`f^SiQPAQQQO?ZyNpeGNOrtQNvP`dHkNuQTINaIm
  46. mECOdl=FfCaQf>=VRUrOyRvgZ_KeKOHmQQIQ<AOhx\@>>fiN>Al]FdHkNuPif`vw]HctlXnrepvNqLI
  47. ESZSjJgX^`@{iQPQPqR?wp=L<QRRsVPn]nyOXnEK?m@[pnH?@caTNGS`a]Xz=PxFfnFK=[NiEQNf<BW
  48. n?QIFrs^@^dXgN=nHA>{FxLdkGUqHcRKOp=DzuGVw<>[qINQHfBwnPm?gZsZaEGDXrsMQmNw?ECxJ>Y
  49. WYzmU<BW]DrLXCufo@Fn=pwG>EgTGWYt]FO\PrbQ<?Vrf>fX<{OTEXqnBw`e\FCwQN]O<ZwQV`ivrii
  50. QeuGYKWUOF>j@SYKOLqGadCO``MAxgPfduK>]FvsAivqhqyniNwHB{LpO>hAoiNGT<p\Zl<uzahpp?w
  51. lEFvrTWXRlWgYip<^Q>\y[itZwRP^g[Q<uD?Btq?QLJO`XEGT?iBJ__gWVr@T>jqWQ\axYsodMpo^?t
  52. ?zQNoEXt=ji\w<c^>VrivsQLRuoqt<vKImUpY_xtJFCwPhdCw]eGVZ\@>NsgVVrFBSSWyzMwwjRyr?p
  53. XQ\`DcyGILABtogT=WJieGV`igkzfRYsyLkzqICHdwA[uR_<fcyNpfoJJ`if=mgXvrggXpWYpgRdesa
  54. QsKqs\g_IXQvXqcT<<AyPxdEw^OGT<OGUogUFVs>PIhtnh^GAPzxJkH\C_?PUaqsVMaSqcyOOPE`uWg
  55. TZi\BNrXhil`oOL=N?sRSAOwHfwM?\Xou[@wRYR\<[aHqLcjMOgTUGTZi\LvsCN_]eSR{yu?y^fww_s
  56. GZxyrdjqRm<anpoLhObIvrCgTmGUeGYldSGMu{QMSmwoIGIiPpmM=_JhDv\\YpUSGcpqQ<zt<AVrHNr
  57. KgTWgVKaP`_mQrd[mXyHf^RT@f@^_<yJqOaPQ[s<`Q?P^`O_ji_vrEAi]eGY{OiZH^hBAyRq?\fjT>N
  58. MTILRQ]DtwSjX_paDkj<YgT`RrRJrHvsVXjpupgfHpsuyVzj{>gx_IRIOUOA>pt\Qq``W\UGUTWU>Jr
  59. J`icVNpUZvEzMA@S=YMlPmtT<<YtooYlIZK\DpmoHQHtzi`?i__i^OG[@{QpKOxZS_fylGSwZ<Oa>[J
  60. kWLqRSNJMON@ZtJNr<wT@JrRvsrdpAjKPKDSezXyKN[=mcl_WcNKsODZuQA\xhg@UJanr_ihZrMMgV\
  61. \ScQJFqJS<AojscSyg[Kk]yVJTy@lSqQJoXQIN`ZtCvrDwU>ZrUJiorxHdnYN_cewm[{tywFjyQOQxs
  62. qDGwGz??JhvpyNFeF`mJ=OgW_i\]WL=Ji]JXvAhn><@BtXlK>]K>[]SakSxRaKQAOcLVVGIPTK>qK]r
  63. QyAL[je`i\LwTchIvsS?KmlDvN=?S\lfNKG>`GM{ysPnv>g{irbBhc?YbJpwVOIG=`O\cgWCihAd=Pi
  64. \v<xaTNDf@tpNHB>?K{{_q__^z@ozQWmKDvg_jOUG_QQLIN=ZthNrLCi]g_vr{IOj^=_zJklk{{{{{_
  65. slsHgL_oxGKrdpvxyKpIMAc@dAPmAtKgTEWT>dBVrKEPheeHGjVCfsK{{{{{{{{{{dsHSDbv`vxndnd
  66. DAXiDQKRhJ`QJP@I]v`NrEwTLWgWP\\g^U[w=qMUEffffffg{{{{{{{{{{{{{{tYws@<HhzoFi\oaE<
  67. ZdwNgPbcm=LK^zi^Ai\CNsPkAuDMjbho`CKsYssYs<D^D^D^D^D^EbUbMbUBM`MbM`UBMDkLZZ?\FOy
  68. FheT@a@pYF`STXnt@?uEJi^Zp=vr>@u{f@zeliUHmKcCC@zXXXTfkYSP<^UFFn^^mKcCC<zI?Q[^kHA
  69. FvKQ?X\r@qPlj^KaBNrlRluGZKcuz<^vdRPf>^Df^a@MKaA<i<diCL\\<Fs<<<fPMqF_Kxr@ndpaS<M
  70. ZDNK^\Sd_tMvrBb\zin>VAx?x{^`p\<<i<<<>pG<l<l<\D<N_xgSquPfn\\@rY\crMiF_uHNr<j?`i_
  71. eUzmzLbt_d<<<<<<gU?UNNqlaJd>X?Mpm?I<dzCvrFeXibtHCmB[@GtZnq^ON?WFFNo^cX^iGDzBMGT
  72. LCvsrEHZ\muTkpdNn_d[<???pfJI>trK]Zi\ABixN<TLBBA{yn]Ncka\=QNy=CE=?w@RrhnsrdT>@Uj
  73. dteepdOYgHvmE__trBr>Zif><dMkgpHkXhuTbLNfX^LzP?i^UGXt=DkJhnFJGlJh]?n\lzNJrEvr@^{
  74. ]FgNy?e^laH>lzFJrG@iqDbu?jOg<io\TQ_wDwTKgT@^zPk]FdiEH]@K_TwV`NrO^tVy@JN=FXK``Jr
  75. GvrL{xgqAD\=Mz??i``VrLbWfo^]_<[g_iaOGU>WtDnX`EzPLwTMvrLdjhnd>[]lwUBNrR{dD\b[]Mw
  76. UCgTREj\<MZlci`mGTRGvezNUwT[gTS^v>Ct<MwTU@i]C{dezfZrAvr@Ubv?At?CihMWTMbz\ctDRrI
  77. ]i]B^vdSfZrP?i]Gz^ctdRrLJrFEj^]ZnRrDwXdkgEZBci^JrNth]ezAEwV_i`_z]L[dTRrFJrNEbeE
  78. Z=cih_i`^V=ctlRrI_i`^]]ZJZpLLwUFB[^LRltwUDlSaad`JrDuzMG_?id`Au>flwVRSnURJr`NZ<=
  79. @Jr`GulwW>k=MwV<gh=wV`e>Zr\T>Zr\bZr\@RrfZr\]wVFZr\mWT>ZrdRrFZrFAihai]ewTPCieEWT
  80. BZrBAi]ci_=WTuwT`Aiaai`NWM>wLgd>j`dB<