Cod sursa(job #2025813)

Utilizator bcrisBianca Cristina bcris Data 23 septembrie 2017 12:30:30
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <stdio.h>
#include <vector>

#define NMAX 8

using namespace std;
vector<int> permutation;
int n;
int chosen[NMAX+1];

void permute() {
	//base_case
	if (permutation.size() == n) {
		for (int i = 0; i < n; i++)
			printf("%d ", permutation[i]);
		printf("\n");
	} else {
		for (int i = 1; i <=n; i++) {
			if (chosen[i] == 0) {
				int next_element = i;
				chosen[i] = 1;
				permutation.push_back(i);

				permute();

				chosen[next_element] = 0;
				permutation.pop_back();	
			}
		}
	}
}

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

	scanf("%d\n", &n);	

	permute();

	return 0;
}