Cod sursa(job #841792)

Utilizator Brz_VladBrezae Vlad Brz_Vlad Data 24 decembrie 2012 22:29:25
Problema Generare de permutari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.73 kb
#include <stdio.h>

int n;

int st[11];

void printSol()
{
	int j;
	for(j=1;j<=n;j++)
		printf("%d ",st[j]);
	printf("\n");
}
/*
unsigned status = 0;

void setI(int i)
{
	status = status & (1<<i);
}

void unsetI(int i)
{
	status = status & (~(1<<i));
}

int checkI(int i)
{
	
}
*/
int main(int argc, char* argv[])
{
	freopen("permutari.in","r",stdin);
	freopen("permutari.out","w",stdout);
	
	scanf("%d",&n);
	
	int k=1;
	
	int j;
	int ok;
	
	while(k>0){
		if( st[k] < n ){
			st[k] = st[k]+1;
			st[k+1] = 0;
		}
		else{
			k--;
			continue;
		}
		
		ok = 1;
		for(j=1;j<k;j++){
			if(st[j] == st[k])
				ok = 0;
		}
		
		if( !ok )
			continue;
		else{
			if( k == n ){
				printSol();
				k--;
			}
			else{
				k++;
			}			
		}
	}
	
	return 0;
}