Cod sursa(job #568499)

Utilizator PatrikStepan Patrik Patrik Data 31 martie 2011 12:35:19
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
	#include<stdio.h>
	FILE *f , *g ;
	int n  ,st[10] ;
	void citire();
	void tipar();
	void back(int k);
	int valid(int k);
	
	int main()
	{
		citire();
		g=fopen("permutari.out" , "w" );
		back(1);
		fclose(g);
		return 0;
	}
	
	void citire()
	{
		f=fopen("permutari.in" ,"r" );
		fscanf(f ,"%d " , &n );
		fclose(f);
	}
	
	void back(int k)
	{
		for (int i  = 1 ; i<= n ; ++i )
		{
			st[k] = i;
			if (valid(k))
				if(k==n)
					tipar();
				else
					back(k+1);
		}
	}
	
	int valid(int k)
	{
		for ( int j = 1 ; j<= k-1 ; j++)
			if(st[j] == st[k] )
				return 0;
			return 1;
	}
	
	void tipar()
	{
		for ( int j = 1 ;j<=  n; ++j )
			fprintf(g, "%d " , st[j] );
		fprintf(g ,"\n");
	}