Cod sursa(job #298564)

Utilizator chibicitiberiuChibici Tiberiu chibicitiberiu Data 6 aprilie 2009 11:03:52
Problema Generare de permutari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include<fstream>
using namespace std;

int perm[9],n;
ofstream out ("permutari.out");

///output permutation
void output()
{
    for (int i=1;i<=n;i++)
        out<<perm[i]<<" ";
    out<<endl;
}

///generate permutations
void generate(int ii)
{
    bool skip;
    for (int i=1;i<=n;i++) {
        ///verify if number was used or not
        skip=false;
        for (int j=1;j<ii;j++)
            if (perm[j]==i) skip=true;
        if (skip==true) continue;
        ///verify if limit reached
        if (ii-1==n)
            skip=true;
        ///write permutation
        if (!skip) {
            perm[ii]=i;
            if (ii==n) output();

            generate(ii+1);
        }
    }
}

int main()
{
    ///read n
    ifstream in ("permutari.in");
    in>>n;
    in.close();

    ///generate permutations
    generate(1);

    ///clean up
    out.close();
    return 0;
}