Pagini recente » Cod sursa (job #2360208) | Cod sursa (job #1861779) | Cod sursa (job #212348) | Cod sursa (job #3223697) | Cod sursa (job #1652219)
#include <fstream> // PERMUTĂRI
using namespace std;
ifstream r ("permutari.in");
ofstream w ("permutari.out");
int n,v[20] ; //n-nr. de elemente, v[20]-vectorul în care construim soluţia
int valid(int k);
int solutie(int k);
void afisare(int k);
void BK(int k);
int main()
{
r>>n; //se citeşte n
BK(1);
return 0; //apelăm funcţia BK pentru completarea poziţiei 1 din vectorul v
}
void BK (int k)
{
int i;
for(i = 1 ; i <= n ; ++ i)
{
v[k] = i;
if(valid(k))
{
if(solutie (k))
afisare(k);
else
BK(k + 1);
}
}
}
int valid (int k)
{
int i;
for(i = 1 ; i <= k - 1; ++ i)
if(v[i] == v[k] )
return 0;
return 1;
}
int solutie (int k)
{
if(k == n)
return 1;
return 0;
}
void afisare (int k)
{
int i;
for(i = 1 ; i <= k ; ++ i)
w<<v[i]<<" ";
w<<endl;
}