Cod sursa(job #536625)

Utilizator CipaFlorescu Ciprian Cipa Data 18 februarie 2011 21:20:28
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<stdio.h>

int stack[100];

bool check(int n)
{
	int i;
	for(i = 0; i < n; i++)
		if(stack[i] == stack[n])
			return 0;
	
	return 1;
}

void pr(int n)
{
	int i;
	for (i = 0; i < n; i++)
	{
		printf("%d ",stack[i]);
	}
	printf("\n");
}


int main()
{
	int n;
	freopen("permutari.in","r",stdin);
	freopen("permutari.out","w",stdout);
	scanf("%d", &n);
	
	int p = 0;
	while(p >= 0)
	{
		stack[p] ++;
		
		if(stack[p] > n)
			p--;
			
		else if(check(p))
		{
			if(p == n-1)
				pr(n);
			else
			{
				p++;
				stack[p] = 0;
			}
		}
	}
		
		
}