Cod sursa(job #650808)

Utilizator andreioneaAndrei Onea andreionea Data 18 decembrie 2011 23:27:05
Problema Generare de permutari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <vector>
#define INFILE "permutari.in"
#define OUTFILE "permutari.out"

using namespace std;

ifstream fin(INFILE);
ofstream fout(OUTFILE);

void back(int k, int n, vector<int> &v, vector<bool> &marked)
{
	if (n == k) {
		for (int i = 0; i<n; ++i)
			fout << 1 + v[i] << " ";
		fout << endl;
	}
	else 
		for (int i = 0; i<n; ++i)
			if (!marked[i]) {
				marked[i] = true;
				v[k] = i;
				back(k+1, n, v, marked);
				marked[i] = false;
				
			}
}
int main()
{
	int n;
	vector<int> v;
	vector<bool> marked;
	fin >> n;
	fin.close();
	for (int i = 0; i<n; ++i)
		marked.push_back(false);
	v.reserve(n);
	back(0, n, v, marked);
	fout.close();
	return 0;
}