Pagini recente » Cod sursa (job #213588) | Cod sursa (job #914062) | Cod sursa (job #1386209) | Cod sursa (job #3040621) | Cod sursa (job #2206820)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dame.in");
ofstream fout("dame.out");
int n, st[1001], fr[1001], diag1[100001], diag2[100001], nrsol;
void Afis()
{
fout << n << '\n';
for(int i = 1; i <= n; i++)
fout << i << " " << st[i] << '\n';
}
void BT(int k)
{
if(k == n+1)
{
nrsol++;
if(nrsol == 1)
{
Afis();
}
return;
}
for(int i = 1; i <= n; i++)
{
st[k] = i;
if(fr[i] == 0 && diag1[k-i+15] == 0 && diag2[k+i] == 0)
{
fr[i]++;
diag1[k-i+15]++;
diag2[k+i]++;
BT(k+1);
fr[i]--;
diag1[k-i+15]--;
diag2[k+i]--;
}
}
}
int main()
{
fin >> n;
BT(1);
return 0;
}