Cod sursa(job #1277192)

Utilizator cdascaluDascalu Cristian cdascalu Data 27 noiembrie 2014 12:22:48
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <algorithm>
#include <fstream>
#define Nmax 9
using namespace std;

ofstream g("permutari.out");

void generate(int N, int lev, int st[], int viz[])
{
    if(lev > N)
        return;

    st[lev] = 0;
    do
    {
        ++st[lev];

        if(st[lev] > N)
            continue;
        if(viz[st[lev]] == 1)
            continue;

        if(lev == N)
        {
            for(int i=1;i<=N;++i)
                g<<st[i]<<" ";
            g<<"\n";
        }

        viz[st[lev]] = 1;
        generate(N, lev+1, st, viz);
        viz[st[lev]] = 0;

    } while(st[lev] <= N);
}
int main()
{
    int N, st[Nmax], viz[Nmax];
    ifstream f("permutari.in");
    f>>N;
    f.close();

    fill(st+1, st+N+1, 0);
    fill(viz+1, viz+N+1, 0);
    generate(N, 1, st, viz);
    g.close();
    return 0;
}