Cod sursa(job #1787624)
Utilizator | Tempfli Levente2 leevii | Data | 24 octombrie 2016 20:51:31 |
---|---|---|---|
Problema | Problema Damelor | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.94 kb |
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
bool ok=1;
int n,x[14],db;
int jo(int l)
{
int ok=1;
int i;
for(i=1;i<=l-1;i++)
{
if(x[l]==x[i]) ok=0;
if(abs(x[l]-x[i])==abs(l-i)) ok=0;
}
return ok;
}
void kiir()
{
int i,j;
if(ok==1)
{
ok=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(x[i]==j)
{
fout<<j<<" ";
break;
}
}
}
}
db++;
}
int back2(int lep)
{
int i;
for(i=1;i<=n;i++)
{
x[lep]=i;
if(jo(lep))
{
if(lep==n) kiir();
else back2(lep+1);
}
}
}
int main()
{
fin>>n;
back2(1);
fout<<"\n"<<db;
}