Pagini recente » Cod sursa (job #1038884) | Cod sursa (job #2604310) | Cod sursa (job #792977) | Cod sursa (job #2437222) | Cod sursa (job #2567855)
#include <fstream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
bool frec[100] = {0}, sem = false;
int st[100] = {0}, n;
bool valid(int k)
{
if(frec[st[k]])
return false;
for(int i = 1; i < k; i++)
if(((k - i) == (st[k] - st[i])) || ((k - i) == (st[i] - st[k])))
return false;
return true;
}
void print()
{
for(int i = 1; i <= n; i++)
fout << st[i] << ' ';
fout << '\n';
}
int permutari()
{
int k = 1, ct = 0;
st[k] = 0;
while(k > 0)
if(st[k] < n)
{
st[k]++;
if(valid(k))
{
frec[st[k]] = 1;
if(k == n)
{
frec[st[k]] = 0;
if(ct == 0)
print();
ct++;
sem = true;
}
else
st[++k] = 0;
}
}
else
{
k--;
frec[st[k]] = 0;
}
return ct;
}
int main()
{
fin >> n;
fout << permutari();
return 0;
}