Pagini recente » Cod sursa (job #2513883) | Cod sursa (job #2158368) | Cod sursa (job #2470779) | Cod sursa (job #2964892) | Cod sursa (job #222424)
Cod sursa(job #222424)
#include<stdio.h>
#include<math.h>
int n,sol[2001][3],uz[2001];
int continuare (int k)
{
int i;
for (i=1;i<=k-1;++i)
if (abs(sol[i][2]-sol[k][2]) == abs(i-k) )
return 0;
return 1;
}
void write ()
{
FILE *f=fopen("dame.out","w");
int i;
fprintf(f,"%d\n",n);
for (i=1;i<=n;++i)
fprintf(f,"%d %d\n",i,sol[i][2]);
fclose(f);
}
void back (int k)
{
if (k==n+1)
write();
else
{
int i,j;
for (i=1;i<=n;++i)
if (!uz[i])
{
uz[i]=1;
sol[k][2]=i;
if (continuare(k))
back(k+1);
uz[i]=0;
}
}
}
int main ()
{
FILE *f=fopen("dame.in","r");
fscanf(f,"%d",&n);
fclose(f);
back (1);
return 0;
}