Cod sursa(job #234913)

Utilizator Alexa_ioana_14Antoche Ioana Alexandra Alexa_ioana_14 Data 22 decembrie 2008 11:36:39
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<stdio.h>
int as,x[9*9],viz[9*9],n;
bool ev;
int main()
{
	freopen("permutari.in","r",stdin);
	freopen("permutari.out","w",stdout);
	scanf("%d",&n);
	int k=1;
	int nrviz=0;
	while (k)
	{
		do
		{
			if (x[k]<n)
			{
				viz[x[k]]--;
				x[k]++;
				viz[x[k]]++;
				as=1;
				nrviz=0;
				for (int i=1; i<=n; ++i)
					if (viz[i])
						nrviz++;
				ev=(nrviz+n-k>=n);
			}
			else as=0;
		}
		while (as&&!ev);
		if (as)
			if (k==n)
			{
				for (int i=1; i<=n; ++i)
					printf("%d ",x[i]);
				printf("\n");
				
			}
			else
				x[++k]=0;
			else
			{
			viz[x[k]]--; --k;
			}
	}
	return 0;
}