Pagini recente » Cod sursa (job #2862620) | Cod sursa (job #3291430) | Cod sursa (job #1778024) | Cod sursa (job #1273197) | Cod sursa (job #1857952)
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
bool as,ev,ok=0;
int n,k,st[15],nrs=0,t;
inline int mod(int a)
{
if(a<0) return -a;
return a;
}
inline int succ()
{
if(st[k]<n)
{
st[k]++;
return 1;
}
return 0;
}
inline int valid()
{
int i;
for(i=1;i<k;i++)
{
if(st[i]==st[k]) return 0;
if(mod(i-k)==mod(st[i]-st[k])) return 0;
}
return 1;
}
inline void tipar()
{
int i;
for(i=1;i<=n;i++)
g<<st[i]<<" ";
g<<'\n';
}
inline void bt()
{
st[1]=0;k=1;
while(k>0)
{
do{
as=succ();
if(as) ev=valid();
}while(as&&!ev);
if(as){
if(k==n) {nrs++;if(!ok) {ok=1;tipar();}}
else {k++;st[k]=0;}
}
else k--;
}
}
int main()
{
f>>n;
bt();
g<<nrs;
}