Cod sursa(job #2191134)

Utilizator dragos.galeteanu2001Dragos Iulian dragos.galeteanu2001 Data 1 aprilie 2018 19:29:46
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <cstdio>

int n, p[20], used[20];
char buffer[10000010];
int bufferSize;

void backTracking(int k)
{
	if (k - 1 == n) {
		for (int i = 1; i <= n; ++i) {
			buffer[bufferSize++] = p[i] + '0';
			buffer[bufferSize++] = ' ';
		}
		buffer[bufferSize++] = '\n';
	}
	else for (int i = 1; i <= n; ++i)
		if (!used[i]) {
			p[k] = i;
			used[i] = 1;
			backTracking(k + 1);
			used[i] = 0;
		}
}

int main()
{
	FILE *in, *out;
	in = freopen("permutari.in", "r", stdin);
	out = freopen("permutari.out", "w", stdout);

	scanf("%d", &n);
	fclose(in);

	backTracking(1);

	buffer[bufferSize] = '\0';
	printf("%s", buffer);
	fclose(out);

    return 0;
}