Cod sursa(job #2227544)

Utilizator vlavricVictor Lavric vlavric Data 1 august 2018 00:21:48
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <cstdio>

using namespace std;

FILE *g;

void readfrom(int *n)
{
	FILE *f;

	f = fopen("permutari.in", "r");
	fscanf(f, "%d", n);
	fclose(f);
}

void afisare(int n, int *a)
{
	for (int i = 1; i <= n; i++)
	{ fprintf(g, "%d ", a[i]); }
	fprintf(g, "\n");
}

void back(int n, int k, int *a)
{
	int under;

	for (int i = 1; i <= n; i++)
	{
		under = 0;
		for (int j = 1; j < k; j++)
			if (a[j] == i) under = 1;
		//printf("%d\n", under);
		if (!under)
		{
			a[k] = i;
			if (k == n) { afisare(n, a); return; } else back(n, k + 1, a);
		}
	}
}

int	main(void)
{
	int n, a[9];

	readfrom(&n);
	for (int i = 1; i <= n; i++)
		a[i] = 0;
	g = fopen("permutari.out", "w");
	back(n, 1, a);
	fclose(g);
	return (0);
}