Pagini recente » Cod sursa (job #2248498) | Cod sursa (job #2251928) | Cod sursa (job #2487801) | Cod sursa (job #576385) | Cod sursa (job #387390)
Cod sursa(job #387390)
#include <fstream>
using namespace std;
ifstream in ( "permutari.in" );
ofstream out ( "permutari.out" );
int n, sol [ 16 ];
void afisare ()
{
for ( int i = 1; i <= n; ++i )
out << sol [ i ] << " ";
out << "\n";
}
bool valid ( int p )
{
for ( int i = 1; i < p; ++i )
if ( sol [ i ] == sol [ p ] )
return false;
return true;
}
void bkt ( int p ) // completeaza elementul de pe poztia p din vectorul sol
{
// dc poz pe care ar urma sa o completez ar fi n + 1 ar insemna ca am completat deja n, deci am o permutare
if ( p == n + 1 )
{
afisare ();
return;
}
for ( int i = 1; i <= n; ++i ) // parcurg val pe care le poate lua sol [ p ]
{
sol [ p ] = i;
//verific dc asta pe care il pun eu se potriveste cu alea dinainte
if ( valid ( p ) )
bkt ( p + 1 );
}
}
int main ()
{
in >> n;
bkt ( 1 );
return 0;
}