Cod sursa(job #908500)

Utilizator deresurobertoFMI - Deresu Roberto deresuroberto Data 9 martie 2013 15:44:14
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<cstdio>
int n,i,k,v[10];
bool ok;

void afisare()
{
	for(i=1;i<=k;i++)printf("%d ",v[i]);
	printf("\n");
}

void cont()
{
	ok=true;
	for(i=1;i<k;i++)
		if(v[i]==v[k]){ok=false;break;}
}

bool succesor()
{
	bool ok1;
	ok1=false;
	if (v[k]<n){
		v[k]++;
		ok1=true;
	}
	if (ok1==true)return true;
	         else return false;
}
	
int main()
{
	freopen("permutari.in","r",stdin);
	freopen("permutari.out","w",stdout);
	scanf("%d",&n);
	k=1;v[k]=0;
	while(k>0){
		ok=false;
		while(not(ok) && succesor())cont();
		if(not(ok))k--;
		else if(k==n)afisare();
		else{ 
			k++;
			v[k]=0;
		}
	}
	return 0;
}