Cod sursa(job #1697607)

Utilizator petrica333petrica petrica petrica333 Data 2 mai 2016 15:25:53
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#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;
}