Cod sursa(job #437613)

Utilizator miculprogramatorA Cosmina - vechi miculprogramator Data 9 aprilie 2010 23:02:56
Problema Generare de permutari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.68 kb
#include <stdio.h>

int st[100];
int n, i, j;
int k, AS;

int Am_Succesor ()
{
	if (st[k] < n)
	{
		st[k] ++;
		return 1;
	}
	return 0;
}

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

int main()
{
	FILE *f = fopen ("permutari.in","r");
	FILE *g = fopen ("permutari.out","w");
	fscanf (f,"%d", &n);
	
	k = 1;
	st[k] = 0;
	while (k > 0)
	{
		do 
		{ }
		while ( (AS = Am_Succesor()) && !E_Valid () );
		if (AS)
		{
			if (k == n)
			{
				for (i=1; i<=n; ++i)
					fprintf (g,"%d ", st[i]);
				fprintf (g,"\n");
			}
			else
			{
				k ++;
				st[k] = 0;
			}
		}
		else
			k --;
	}	
	
	
	return 0;
}