Cod sursa(job #1570163)

Utilizator MithrilBratu Andrei Mithril Data 16 ianuarie 2016 11:19:38
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>

using namespace std;

ifstream fin("permutari.in");
ofstream fout("permutari.out");
#define N 20
int n;
int per[N];

void afisare()
{
    for(int i = 1 ; i <= n ; ++i )
        fout << per[i] << ' ';
    fout << '\n';
}

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

void backt( int k )
{
    if ( k == n+1 )
    {
        afisare();
        return ;
    }
    for( int i = 1 ; i <= n ; ++i ) /// incercam toate valorile posibile
        if( valid( i , k ) )    /// returneaza 1 daca putem sa punem pe el i
        {
              per[k] = i ;
              backt( k + 1 );                  /// pe niveelul k
        }
}

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

    return 0;
}