Cod sursa(job #1445669)

Utilizator mouse_wirelessMouse Wireless mouse_wireless Data 30 mai 2015 18:31:26
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <cstdio>
#include <cassert>
#include <algorithm>
#define _submit
#ifdef _submit
#define InFile "permutari.in"
#define OutFile "permutari.out"
#else
#define InFile "fis.in"
#define OutFile "fis.out"
#endif

void bkt(int n) {
	int st[8];
	st[0] = 0;
	int k = 0;
	while (k > -1) {
		bool OK = false;
		while (st[k] < n && !OK) {
			OK = true;
			st[k]++;
			for (int i = 0; i < k; i++)
			if (st[i] == st[k]) {
				OK = false;
				break;
			}
		}
		if (OK) {
			if (k + 1 == n) {
				for (int i = 0; i < n; i++)
					printf("%d ", st[i]);
				printf("\n");
			}
			else {
				k++;
				st[k] = 0;
			}
		}
		else
			k--;
	}
}

int main() {
	assert(freopen(InFile, "r", stdin));
	assert(freopen(OutFile, "w", stdout));
	int n;
	scanf("%d", &n);
	bkt(n);
	return 0;
}