Cod sursa(job #319769)

Utilizator SliMMStefan Saftescu SliMM Data 2 iunie 2009 00:32:20
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
/*
 * permutari.cpp
 *
 *  Created on: Jun 1, 2009
 *      Author: stefan
 */
#include <iostream>
#include <cstdlib>
#include <cstdio>

using namespace std;

int stiva[8];register int n, i;

void afisare()
{
	for(i=0;i<n;++i) cout << stiva[i] << " ";
	cout << endl;
}

bool valid(int k)
{
	int nr[8];
	memset(nr,0,sizeof(nr));

	for(i=0; i<=k; ++i)
		if(nr[stiva[i]-1]) return false;
		else ++nr[stiva[i]-1];

	return true;
}

void back(int k)
{
	if(k==n) afisare();
	else
		for(stiva[k]=1;stiva[k]<=n;++stiva[k])
			if(valid(k)) back(k+1);
}

int main()
{
	freopen("permutari.in", "r", stdin);
	freopen("permutari.out", "w", stdout);

	cin >> n;
	back(0);

	return 0;
}