Pagini recente » Cod sursa (job #1954915) | Cod sursa (job #1927374) | Cod sursa (job #2403168) | Cod sursa (job #680563) | Cod sursa (job #2653072)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ( "permutari.in" );
ofstream g ( "permutari.out" );
int v[10], n;
bool afis()
{
for ( int i = 1; i <= n; i++ )
g << v[i] << ' ';
g << '\n';
}
bool valid ( int x )
{
for ( int i = 1; i < x; i++ )
if ( v[i] == v[x] )
return 0;
return 1;
}
void backt ( int k )
{
if ( k <= n )
for ( int i = 1; i <= n; i++ )
{
v[k] = i;
if ( valid ( k ) )
backt ( k + 1 );
}
else
if ( valid ( k ) )
afis();
}
void backt()
{
int k = 1;
v[1] = 0;
while ( k )
{
if ( v[k] < n )
{
v[k]++;
if ( valid ( k ) )
{
if ( k == n )
afis();
else v[++k] = 0;
}
}
else k--;
}
}
int main()
{
f >> n;
backt ();
return 0;
}