Cod sursa(job #650805)

Utilizator andreioneaAndrei Onea andreionea Data 18 decembrie 2011 23:23:32
Problema Generare de permutari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 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 n, vector<int> &v, vector<bool> &marked)
{
	if (n == v.size()) {
		for (vector<int>::iterator it = v.begin(); it != v.end(); ++it)
			fout << 1 + *it << " ";
		fout << endl;
	}
	else 
		for (int i = 0; i<n; ++i)
			if (!marked[i]) {
				marked[i] = true;
				v.push_back(i);
				back(n, v, marked);
				marked[i] = false;
				v.pop_back();
			}
}
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);
	back(n, v, marked);
	fout.close();
	return 0;
}