Cod sursa(job #719869)

Utilizator zalmanDanci Emanuel Sebastian zalman Data 22 martie 2012 09:55:57
Problema Generare de permutari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.57 kb
#include <stdio.h>

FILE *f, *g;
int st[10], N, i;


int valid(int k)
{
	for(i = 1; i < k; ++i)
		if(st[i] == st[k])
			return 0;

	return 1;
}

void print(void)
{
	for(i = 1; i <= N; ++i)
		fprintf(g, "%d ", st[i]);

	fprintf(g, "\n");
}
void back(int k)
{
	int i;
	for(i = 1; i <= N; ++i)
	{
		st[k] = i;
		if(valid(k))
			if(k == N)
				print();
			else
				back(k+1);
	}
}
int main(void)
{
	f = fopen("permutari.in", "r");
	g = fopen("permutari.out", "w");
	
	fscanf(f, "%d", &N);
	
	back(1);

	fclose(f);
	fclose(g);
	return 0;
}