Pagini recente » Cod sursa (job #2892222) | Cod sursa (job #1651110) | Cod sursa (job #1658292) | Cod sursa (job #886274) | Cod sursa (job #2481450)
#include<fstream>
using namespace std;
int contor = 0;
bool write = 1;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int perm[15];
int col[15];
int diag1[30];
int diag2[30];
void back(int poz, int n)
{
if(poz == n+1)
{
contor++;
if(write == 1)
{
write = 0;
for(int i = 1; i <= n; i++)
{
fout << perm[i] << " ";
}
}
return;
}
for(int i = 1; i <= n; i++)
{
if(!col[i] && !diag1[i-poz+n] && !diag2[i+poz])
{
col[i] = 1;
diag1[i-poz+n] = 1;
diag2[i+poz] = 1;
perm[poz] = i;
back(poz+1, n);
diag2[i+poz-1] = 0;
diag1[i-poz+n] = 0;
col[i] = 0;
}
}
}
int main()
{
int n;
fin >> n;
back(1,n);
fout << "\n" << contor;
fin.close();
fout.close();
}