Cod sursa(job #1300093)

Utilizator LegionHagiu Stefan Legion Data 24 decembrie 2014 00:36:00
Problema Generare de permutari Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;
ofstream out("permutari.out");
int numere[20];
bool verifica(int i)
{
	bool verific[20];
	int j; 
	for (j = 1; j <= i;j++)
	{
		verific[j] = false;
	}
	for (j = 1; j <= i; j++)
	{
		if (verific[numere[j]] == true)
		{
			return false;
		}
		verific[numere[j]] = true;
	}
	return true;
}
void afiseaza(int n)
{
	int i;
	for (i = 1; i <= n; i++)
	{
		out << numere[i] << " ";
	}
	out << "\n";
}
void permutari(int i, int n)
{
	int j;
	if (i <= n)
	{
		for (j = 1; j <= n; j++)
		{
			numere[i] = j;
			if (verifica(i))
			{
				permutari(i + 1, n);
			}
		}
	}
	else
	{
		if (verifica(n))
		{
			afiseaza(n);
		}
	}
}
int main()
{
	ifstream in("permutari.in");
	int n;
	in >> n;
	in.close();
	permutari(1, n);
	out.flush();
	out.close();
	return 0;
}