Pagini recente » Cod sursa (job #1369225) | Cod sursa (job #1491870) | Cod sursa (job #3252237) | Cod sursa (job #1663190) | Cod sursa (job #1570163)
#include <fstream>
using namespace std;
ifstream fin("permutari.in");
ofstream fout("permutari.out");
#define N 20
int n;
int per[N];
void afisare()
{
for(int i = 1 ; i <= n ; ++i )
fout << per[i] << ' ';
fout << '\n';
}
bool valid(int val , int k)
{
for(int i = 1 ; i <= k - 1
; ++i )
if(per[i] == val )
return false;
return true;
}
void backt( int k )
{
if ( k == n+1 )
{
afisare();
return ;
}
for( int i = 1 ; i <= n ; ++i ) /// incercam toate valorile posibile
if( valid( i , k ) ) /// returneaza 1 daca putem sa punem pe el i
{
per[k] = i ;
backt( k + 1 ); /// pe niveelul k
}
}
int main()
{
fin >> n ;
backt(1);
return 0;
}