Cod sursa(job #1135203)
Utilizator | Data | 7 martie 2014 14:47:39 | |
---|---|---|---|
Problema | Problema Damelor | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.71 kb |
#include <fstream>
#include <cmath>
using namespace std;
ifstream f ("damesah.in");
ofstream g ("damesah.out");
int c,i,st[14],k,n;
int valid (int k)
{
int i;
for (i=1;i<k;i++)
if (st[i]==st[k]|| ( abs(st[k]-st[i])==k-i)) return 0;
return 1;
}
void tip ()
{
int i;
for (i=1;i<=n;i++)
g<<st[i]<<' ';
g<<'\n';
}
void Back (int k)
{
int i;
for (i=1;i<=n;i++)
{
st[k]=i;
if (valid(k))
if (k==n) {c++;
if (c==1)
tip ();
}
else Back (k+1);
}
}
int main()
{
f>>n;
c=0;
Back (1);
g<<c;
return 0;
}