Cod sursa(job #319766)

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

using namespace std;

int stiva[8], n;

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

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

	for(int 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;
}