Pagini recente » Cod sursa (job #2668341) | Cod sursa (job #1363073) | Cod sursa (job #1766886) | Cod sursa (job #76060) | Cod sursa (job #1121677)
#include <iostream>
#include <stdio.h>
#define abs(x) ((x)<0?(-(x)):(x))
using namespace std;
FILE *f1=freopen("dame.in", "r", stdin);
FILE *f2=freopen("dame.out", "w", stdout);
int n, n2, sol[1001], ok=1;
void afis()
{
for (int i=1; i<=n2; i++)
{
printf("%d %d\n", i, sol[i]);
// for (int j=1; j<=n; j++)
// if (j==sol[i])
// printf("R");
// else
// printf("*");
// printf("\n");
}
printf("\n\n");
}
int e_ok(int k, int i)
{
for (int j=1; j<k; j++)
if (i==sol[j] || abs(k-j)==abs(i-sol[j]))
return 0;
return 1;
}
void bt(int k)
{
if (k==n2+1 && ok==1)
{
afis();
ok=0;
return;
}
for (int i=1; i<=n; i++)
if (e_ok(k, i))
{
sol[k]=i;
bt(k+1);
}
}
int main()
{
scanf("%d", &n);
if (n<3)
{
printf("1\n");
n2=1;
}
else if (n==3)
{
printf("2\n");
n2=2;
}
else
{
printf("%d\n", n);
n2=n;
}
bt(1);
return 0;
}