Cod sursa(job #509278)

Utilizator liviu12345Stoica Liviu liviu12345 Data 10 decembrie 2010 19:39:49
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <cstdio>
#include <cstdlib>

using namespace std ;

int rangPermutare , permutare [ 9 ] ;

void afisarePermutari ( int ) ;

inline bool verificare ( int &Pozitie , int &Val )
{
  for ( int i = Pozitie + 1 ; i <= rangPermutare ; ++i )
  {
    if ( permutare [ i ] == Val )
      return false ;
  }
  return true ;
}

int main ( )
{

  
  scanf ( "%d" , &rangPermutare ) ;
  
  int n = rangPermutare ;
  
  afisarePermutari ( n ) ;
  
  return 0 ;
}

void afisarePermutari ( int Pozitie )
{
  for ( int i = 1 ; i <= rangPermutare ; ++i )
  {
    if ( verificare ( Pozitie , i ) )
    {
      if ( Pozitie == 1 )
      {
	permutare [ Pozitie ] = i ;
	for ( int j = rangPermutare ; j ; --j )
	  printf ( "%d" , permutare [ j ] ) ;
	printf ( "\n" ) ;
      }
      else 
      {
	permutare [ Pozitie ] = i ;
	afisarePermutari ( Pozitie - 1 ) ;
      }
    }
  }
}