Cod sursa(job #1232268)

Utilizator pop_bogdanBogdan Pop pop_bogdan Data 22 septembrie 2014 17:02:03
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
using namespace std;

ifstream is("permutari.in");
ofstream os("permutari.out");

int N, x[9];
void Perm(int k);
void Write(int k);
bool OK(int k);

int main()
{
    is >> N;
    Perm(1);

    is.close();
    os.close();
}

void Perm(int k)
{
    if ( k == N+1 )
    {
        Write(N);
        return;
    }
    for ( int i = 1; i <= N; ++i )
    {
        x[k] = i;
        if ( OK(k) )
            Perm(k+1);
    }
}

void Write(int k)
{
    for ( int i = 1; i <= N; ++i )
        os << x[i] << " ";
    os << '\n';
}

bool OK(int k)
{
    for ( int i = 1; i <= k-1; ++i )
    {
        if ( x[i] == x[k] )
            return false;
    }
    return true;
}