Pagini recente » Cod sursa (job #1793573) | Cod sursa (job #1045289) | Cod sursa (job #2771269) | Cod sursa (job #2419233) | Cod sursa (job #2110442)
#include <fstream>
using namespace std;
ifstream fi("damesah.in");
ofstream fo("damesah.out");
int n,k,d;
int a[14][14];
bool verif(int x, int y)
{
for(int i=1;i<=n;i++)
if(a[i][y]==1)
return false;
for(int j=1;j<=n;j++)
if(a[x][j]==1)
return false;
for(int i=1;x+i<=n and y+i<=n;i++)
if(a[x+i][y+i]==1)
return false;
for(int i=1;x-i>=1 and y-i>=1;i++)
if(a[x-i][y-i]==1)
return false;
for(int i=1;x-i>=1 and y+i<=n;i++)
if(a[x-i][y+i]==1)
return false;
for(int i=1;x+i<=n and y-i>=1;i++)
if(a[x+i][y-i]==1)
return false;
return true;
}
void dame(int x, int y)
{
if(x==n+1 and d==4)
{
if(k==0)
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(a[i][j]==1)
fo<<j<<" ";
}
k++;
}
else
for(int i=x;i<=n;i++)
for(int j=1;j<=n;j++)
if(verif(i,j))
{
a[i][j]=1;
// for(int l=1;l<=n;l++)
// {for(int c=1;c<=n;c++)
// fo<<a[l][c]<<" ";
// fo<<endl;}
// fo<<endl;
d++;
dame(i+1,j);
d--;
a[i][j]=0;
}
}
int main()
{
fi>>n;
dame(1,1);
fo<<endl;
fo<<k;
}