Pagini recente » Cod sursa (job #2656141) | Cod sursa (job #537692) | Cod sursa (job #931984) | Cod sursa (job #2529177) | Cod sursa (job #1719567)
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
ifstream f("dame.in");
ofstream g("dame.out");
int x[1001],n,nr,ok=0;
void tipar()
{int i,j;
for(i=1;i<=n;i++)
g<<i<<" "<<x[i]<<endl;
g<<endl;
ok=1;}
int ebun(int k)
{int i;
for(i=1;i<k;i++)
if(x[i]==x[k] || abs(x[i]-x[k])==abs(i-k))
return 0;
return 1;
}
void backtrack(int k )
{int i;
if(k==n+1)
{if(ok==0)tipar();
nr++;}
else for(i=1;i<=n;i++)
{
x[k]=i;
if(ebun(k)&&ok==0) backtrack(k+1);
}
}
int main()
{
f>>n;
g<<n<<endl;
backtrack(1);
}