Cod sursa(job #1181326)

Utilizator sorin2kSorin Nutu sorin2k Data 2 mai 2014 15:13:53
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<fstream>
using namespace std;

ifstream fin("permutari.in");
ofstream fout("permutari.out");
int n, sol[20], p;

void print_sol() {
	int i;
	for(i = 1; i <= p; i++) fout << sol[i] << " ";
	fout << "\n";
}

bool is_valid() {
	int i, j;
	for(i = 1; i <= p; i++) {
		for(j = 1; j <= p; j++) {
			if(i != j && sol[i] == sol[j]) {
				return false;
			}
		}
	}
	return true;
}

void back() {
	p = 1;
	sol[p] = 1;
	while(p > 0) {
		if(p == n) {
			if(is_valid()) print_sol();
			if(sol[p] < n) sol[p]++;
			else {
				p--;
				sol[p] += 1;
			}
		} else {
			if(sol[p] > n) {
				p--;
				sol[p]++;
			} else {
				if(is_valid()) {
					p++;
					sol[p] = 1;
				} else sol[p]++;
			}
		}
	}
}

int main() {
	fin >> n;
	back();
	return 0;
}