Pagini recente » Cod sursa (job #683921) | Cod sursa (job #2075616) | Cod sursa (job #683948) | Cod sursa (job #3247888) | Cod sursa (job #1697607)
#include <fstream>
using namespace std;
#define TRUE 1
#define FALSE 0
#define MAX 100
ifstream fin("permutari.in");
ofstream fout("permutari.out");
void afisare(int n, int x[])
{
int i;
for (i = 1; i <= n; i++)
fout<<x[i]<<" ";
fout<<'\n';
}
int condcontinuare(int n, int x[])
{
int i;
for (i = 1; i < n; i++)
if (x[i] == x[n])
return FALSE;
return TRUE;
}
void PERMUTARI(int n, int x[])
{
int k = 1,ok; x[k] = 0;
while (k > 0)
{
ok = FALSE;
while (x[k] + 1 <= n && ok == FALSE)
{
x[k] = x[k]+1;
if (condcontinuare(k, x))
ok = TRUE;
}
if (ok == TRUE)
if (k == n)
afisare(k, x);
else
{
k = k + 1;
x[k] = 0;
}
else
k = k - 1;
}
}
int main()
{
int n, k, ok;
int x[MAX];
fin>>n;
PERMUTARI(n,x);
return 0;
}