Cod sursa(job #1922344)

Utilizator DysKodeTurturica Razvan DysKode Data 10 martie 2017 17:03:27
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <bits/stdc++.h>

using namespace std;

#define f first
#define s second

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

int i,j,n,m,st[20],fv[20],suma;

void bk( int nivel )
{
    if( nivel == n )
    {
        st[ nivel ] = n * ( n + 1 ) / 2 - suma;
        bk( nivel + 1 );
        return;
    }
    if( nivel == n + 1 )
    {
        for( i = 1 ; i <= n ; i++ )
            fout<<st[ i ]<<' ';
        fout<<'\n';
    }

    for( int i = 1 ; i <= n ; i++ )
    {
        if( !fv[ i ] )
        {
            fv[ i ] = 1;
            st[ nivel ] = i;
            suma += i;
            bk( nivel + 1 );
            suma -= i;
            fv[ i ] = 0;
        }
    }
}

int main()
{
    fin>>n;
    bk( 1 );

return 0;
}