Pagini recente » Cod sursa (job #2343778) | Cod sursa (job #470612) | Cod sursa (job #1600607) | Cod sursa (job #1357469) | Cod sursa (job #387393)
Cod sursa(job #387393)
#include <fstream>
using namespace std;
ifstream in ( "permutari.in" );
ofstream out ( "permutari.out" );
int n, sol [ 16 ];
bool marcat [ 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 )
//verific dc asta pe care il pun eu se potriveste cu alea dinainte
if ( !marcat [ i ] ) // parcurg val pe care le poate lua sol [ p ]
{
sol [ p ] = i;
marcat [ i ] = true;
bkt ( p + 1 );
marcat [ i ] = false;
}
}
int main ()
{
in >> n;
bkt ( 1 );
return 0;
}