Pagini recente » Cod sursa (job #1690810) | Cod sursa (job #300994) | Borderou de evaluare (job #1062912) | Cod sursa (job #428494) | Cod sursa (job #1842599)
#include<stdio.h>
#pragma warning(disable:4996)
using namespace std;
const int MAX = 20;
int n, v[MAX];
int valid(int k);
int solutie(int k);
void afisare(int k);
void BK(int k);
int main() {
freopen("permutari.in", "r", stdin);
freopen("permutari.out", "w", stdout);
scanf("%d", &n);
BK(1);
return 0;
}
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++)
printf("%d ", v[i]);
printf("\n");
}