Pagini recente » Cod sursa (job #317199) | Cod sursa (job #326816) | Cod sursa (job #318280) | Cod sursa (job #357803) | Cod sursa (job #1157190)
#include<fstream>
#define N 15
#define FOR(a,b,c) for(int a=b;a<=c;a++)
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n,lin[N],col[N],d1[2*N],d2[2*N],m[N][N],OK,sol;
void back(int k)
{
if(k>n)
{
sol++;
if(OK)
return;
OK=1;
FOR(i,1,n)
g<<lin[i]<<" ";
g<<"\n";
return;
}
FOR(i,1,n)
{
if(!col[i]&&!m[k][i])
{
if(d1[k+i]||d2[k-i+N])
continue;
d1[k+i]=d2[k-i+N]=1;
col[i]=1;
lin[k]=i;
back(k+1);
col[i]=0;
d1[k+i]=d2[k-i+N]=0;
}
}
}
int main()
{
f>>n;
back(1);
g<<sol;
return 0;
}