Pagini recente » Cod sursa (job #496659) | Cod sursa (job #484833) | Cod sursa (job #646469) | Cod sursa (job #2282331) | Cod sursa (job #1947536)
#include<fstream>
#include<string.h>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int n,ma,rez,t,p,m,b;
char x[10][10],d;
int y[20][20];
int v[20],tr[20];
void ve(int nr,int v[20],int i)
{ int d,j;
if(nr==n)
{rez++;
if(rez==1){
for(j=1;j<=n;j++)
tr[j]=v[j];
}
return;
}
for(j=1;j<=n;j++)
if(y[i][j]==0)
{
y[i][j]++;
nr++;
v[nr]=j;
for(d=1;d<=n;d++)
{
y[i][d]++;
y[d][j]++;
}
int e=j;
for(d=i+1;d<=n;d++)
{
e++;
if(e<=n)
y[d][e]++;
else
break;
}
e=j;
for(d=i+1;d<=n;d++)
{
e--;
if(e>=1)
y[d][e]++;
else break;
}
ve(nr,v,i+1);
nr--;
y[i][j]--;
for(d=1;d<=n;d++)
{
y[i][d]--;
y[d][j]--;
}
e=j;
for(d=i+1;d<=n;d++)
{
e++;
if(e<=n)
y[d][e]--;
else
break;
}
e=j;
for(d=i+1;d<=n;d++)
{
e--;
if(e>=1)
y[d][e]--;
else break;
}
}
}
int main()
{fin>>n;
ve(0,v,1);
for(int j=1;j<=n;j++)
fout<<tr[j]<<' ';
fout<<'\n';
fout<<rez;
}