Cod sursa(job #251798)

Utilizator willliIonel Bratianu willli Data 3 februarie 2009 13:31:46
Problema Generare de permutari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.69 kb
#include <stdio.h>
#include <stdlib.h>
#define in "permutari.in"
#define out "permutari.out"
#define MAX 10

int stiva[MAX], n;
FILE *fout;

void perm(int k)
{
	int i, p, j;
	
	if (k == n)
	{
		for (i = 0; i < n; i++)
			fprintf(fout, "%d ", stiva[i] + 1);
		fprintf(fout, "\n");
	}
	else 
	{
		for (i = 0; i < n; i++)
		{
			stiva[k] = i;
			p = 1;
			for (j = 0; j < k; j++)
				if (stiva[j] == stiva[k])
				{
					p = 0;	
					break;
				}
			if (p)
			{				
				perm(k + 1);
			}
		}
	
	}
}

int main()
{
	FILE *fin;
	
	if ((fin = fopen(in, "r")) == NULL)
	{
		printf("Eroare \n");
		exit(-1);
	}
	fscanf(fin, "%d", &n);
	fclose(fin);
	fout = fopen(out, "w");
	perm(0);
	fclose(fout);	
	return 0;
}