Pagini recente » Istoria paginii runda/test_79 | Istoria paginii runda/ddd | Istoria paginii runda/qwertyuiop/clasament | Istoria paginii utilizator/edy_13 | Cod sursa (job #1674920)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("damesah.in");
ofstream out("damesah.out");
const int NMAX = 15;
int st[NMAX];
int n,vf=1;
long long int nr = 0;
int k = 1;
void afisare()
{
if(k)
{
for(int i=1;i<=n;i++)
out<<st[i]<<" ";
out<<"\n";
k = 0;
}
nr++;
}
int ok()
{
if(vf>1)
{
for(int i=1;i<vf;i++)
if(st[vf]==st[i] || abs(vf-i)==abs(st[vf]-st[i]))
return 0;
}
return 1;
}
int main()
{
in>>n;
in.close();
while(vf>0)
{
st[vf]++;
if(st[vf] > n)
vf--;
else
{
if(ok())
{
if(vf==n)
afisare();
else
st[++vf] = 0;
}
}
}
out<<nr<<"\n";
out.close();
return 0;
}