Pagini recente » Cod sursa (job #1951715) | Cod sursa (job #2815983) | Cod sursa (job #3216732) | Cod sursa (job #2780705) | Cod sursa (job #2828125)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int k, n, col[14];
bool verif(int n, int col[])
{
for(int i = 0; i < n-1; i++)
for(int j = i+1; j < n; j++)
if(col[i] == col[j] || i + col[i] == j + col[j] || i - col[i] == j - col[j])
return false;
return true;
}
void f(int nivel, int n, int col[])
{
if (nivel == n)
{
if(verif(n, col))
{
if(!k)
{
for (int i = 0; i < n; i++)
fout << col[i] << ' ';
}
k++;
}
}
else
for (int i = 1; i <= n; i++)
{
col[nivel] = i;
f(nivel+1, n, col);
}
}
int main()
{
fin >> n;
f(0, n, col);
fout << '\n' << k;
return 0;
}