Pagini recente » Cod sursa (job #1627426) | Cod sursa (job #1701110) | Cod sursa (job #1879678) | Cod sursa (job #647488) | Cod sursa (job #2168486)
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream fin ("damesah.in");
ofstream fout ("damesah.out");
int fv[ 50 ], fv2[ 50 ], fv3[ 50 ], n, afi, st[ 20 ], k;
void backtr ( int nivel )
{
int i;
if ( nivel > n )
{
if ( afi == 0 )
{
k ++;
afi = 1;
for ( i = 1; i <= n; i++ )
{
fout << st[ i ] << ' ';
}
fout << '\n';
}
else
{
k ++;
}
return;
}
for ( i = 1; i <= n; i++ )
{
if ( fv[ 15 + ( nivel - i ) ] == 0 && fv2[ 15 + ( ( n - nivel ) + ( n - i ) ) ] == 0 && fv3[ i ] == 0 )
{
fv[ 15 + ( nivel - i ) ] = 1;
fv2[ 15 + ( ( n - nivel ) + ( n - i ) ) ] = 1;
fv3[ i ] = 1;
st[ nivel ] = i;
backtr ( nivel + 1 );
fv[ 15 + ( nivel - i ) ] = 0;
fv2[ 15 + ( ( n - nivel ) + ( n - i ) ) ] = 0;
fv3[ i ] = 0 ;
st[ nivel ] = 0;
}
}
}
int main ()
{
fin>> n;
backtr ( 1 );
fout << k;
}