Cod sursa(job #392815)

Utilizator sorecau_catalinSorecau Catalin sorecau_catalin Data 8 februarie 2010 13:51:18
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
using namespace std;

ifstream fin("permutari.in");
ofstream fout("permutari.out");

int x[100];
int n;
int nrsol;

void Write( int k );
void Perm( int k );
bool OK( int k );

int main()
{
	fin >> n;
	Perm(1);
	fin.close();
	fout.close();
}

void Perm( int k )
{
	if ( k > n )
	{
		Write(k-1);
		return;
	}
	for ( int i = 1; i <= n; ++i)
	{
		x[k] = i;
		if ( OK( k ) )
			Perm(k+1);
	}
}

void Write(int k )
{
	nrsol++;
	for ( int i = 1; i <= k; ++i)
		fout << x[i] << ' ';
	fout << '\n';
}

bool OK( int k )
{
	for ( int i = 1; i < k; ++i )
		if ( x[i] == x[k] )
			return false;
	return true;
}