Cod sursa(job #1096623)

Utilizator anaid96Nasue Diana anaid96 Data 2 februarie 2014 13:47:21
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<stdio.h>

FILE *in,*out;

//functii
void back(int k);
bool valid(int k);
void tipar();

//variabile
int n;
int stiva[9];

int main()
{
	in=fopen("permutari.in","rt");
	out=fopen("permutari.out","wt");
	
	fscanf(in,"%d",&n);
	back(1);
	
	fclose(in);
	fclose(out);
	return 0;
}

void back(int k)
{
	for(int i=1; i<=n; ++i)
	{	
		stiva[k]=i;
		if(valid(k))
			if(k==n)
				tipar();
			else
				back(k+1);
	}		
	
}	

bool valid(int k)
{
	for(int i=1; i<k; ++i)
		if(stiva[i]==stiva[k])
			return false;
	return true;	
	
}	

void tipar()
{
	for(int i=1; i<=n; ++i)
		fprintf(out,"%d ",stiva[i]);
	fprintf(out,"\n");
	
}