Cod sursa(job #2202957)

Utilizator vlad.ulmeanu30Ulmeanu Vlad vlad.ulmeanu30 Data 10 mai 2018 16:04:13
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>
#include <vector>
#define maxn 8
#define f8 40320

using namespace std;

vector <int> v[f8+5];
vector <int> w;
int num = 0;
int n;

void bec ( vector <int> u )
{
  int fv[maxn] = { 0, 0, 0, 0, 0, 0, 0, 0 };
  int sz = u.size (), i;

  for ( i = 0; i < sz; i++ )
    fv[u[i]]++;

  if ( sz == n )
  {
    for ( i = 0; i < sz; i++ )
      v[num].push_back ( u[i] );
    num++;
  }
  else
  {
    u.push_back ( -1 );
    for ( i = 0; i < n; i++ )
      if ( fv[i] == 0 )
      {
        u[sz] = i;
        bec ( u );
      }
  }
}

int main ()
{
  ifstream fin ( "permutari.in" );
  ofstream fout ( "permutari.out" );

  fin >> n;

  int i;

  bec ( w );

  for ( i = 0; i < num; i++, fout.put ( '\n' ) )
    for ( int j = 0; j < v[i].size (); j++ )
      fout << v[i][j] + 1 << ' ';

  fin.close ();
  fout.close ();

  return 0;
}