Pagini recente » Cod sursa (job #2342981) | Cod sursa (job #1089283) | Cod sursa (job #3215711) | Cod sursa (job #1468970) | Cod sursa (job #1423321)
#include <cstdio>
#include <cmath>
using namespace std;
FILE *f=fopen("dame.in","r");
FILE *g=fopen("dame.out","w");
int n,st[20],i,j;
void afis()
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(st[i]==j)fprintf(g,"R ");
else fprintf(g,"* ");
}
fprintf(g,"\n");
}
fprintf(g,"\n");
}
bool valid(int niv)
{
for(int i=0;i<niv;++i)
if((st[niv]==st[i]) || (abs(st[i]-st[niv])==niv-i))
return 0;
return 1;
}
void back(int niv)
{
if(niv==n)afis();
else
for(st[niv]=0;st[niv]<n;st[niv]++)
if(valid(niv))
back(niv+1);
}
int main()
{
fscanf(f,"%d",&n);
back(0);
return 0;
}