Cod sursa(job #197015)

Utilizator piroslPiros Lucian pirosl Data 30 iunie 2008 19:37:19
Problema Generare de permutari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.63 kb
#include <stdio.h>

FILE* fin;
FILE* fout;
int perm[9];
char mask[9];
int n;

void print()
{
	int i;
	for(i = 0;i<n-1;++i) 
	{
		fprintf(fout, "%d ", perm[i]);
	}
	fprintf(fout, "%d\n", perm[n-1]);
}

void permutari(int k)
{
	int i;
	if(k == n)
	{
		print();
		return;
	}
	for(i=1;i<=n;++i)
	{
		if(mask[i-1] == 0)
		{
			perm[k] = i;
			mask[i-1] = 1;
			permutari(k+1);
			mask[i-1] = 0;
		}
	}
}

int main(void)
{
	int i;
	fin = fopen("permutari.in", "r");
	fout = fopen("permutari.out", "w+");
	fscanf(fin, "%d", &n);
	for(i=0;i<n;++i)
		mask[i] = 0;
	permutari(0);
	fclose(fin);
	fclose(fout);
}