Cod sursa(job #797828)

Utilizator catalinb91Catalin Badea catalinb91 Data 14 octombrie 2012 22:52:25
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
#include <vector>

std::ifstream input("permutari.in");
std::ofstream output("permutari.out");

void backtrack(std::vector<int>& current, unsigned int max) {
	if (current.size() >= max) {
		for (unsigned int i = 0; i < current.size(); i++) {
			output << current[i] << " ";
		}
		output << "\n";
		return;
	}

	for (unsigned int i = 1; i <= max; i++) {
		bool found = false;
		for (unsigned int j = 0; j < current.size(); j++) {
			if (current[j] == i) {
				found = true;
				break;
			}
		}

		if (found)
			continue;

		current.push_back(i);
		backtrack(current, max);
		current.pop_back();
	}
}

int main() {
	unsigned int n;
	std::vector<int> base;

	input >> n;

	backtrack(base, n);
	return 0;
}