Cod sursa(job #936654)

Utilizator forgetHow Si Yu forget Data 8 aprilie 2013 03:56:20
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>
#include <vector>
using namespace std;

ifstream fin("permutari.in");
ofstream fout("permutari.out");

int n;
vector<int> a;

void generate(int i)
{
	for (int j = 0; j < n; ++j)
		fout << a[j] << ' ';
	fout << '\n';

	for (int j = n-2; j >= i; --j) {
		for (int k = j+1; k < n; ++k) {
			swap(a[j],a[k]);
			generate(j+1);
		}
		int tmp = a[j];
		for (int k = j+1; k < n; ++k)
			a[k-1] = a[k];
		a[n-1] = tmp;
	}
}

int main() {
	fin >> n;
	a.resize(n);
	for (int i = 0; i < n; ++i)
		a[i] = i+1;
	generate(0);
	return 0;
}