Cod sursa(job #2954881)

Utilizator andiRTanasescu Andrei-Rares andiR Data 15 decembrie 2022 18:43:56
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <fstream>

#define Nmax 8
using namespace std;
ifstream fin ("permutari.in");
ofstream fout ("permutari.out");

short n, i;
short ind[Nmax+1], nxt[Nmax+1], sol[Nmax];

void perm(short level){
    int st=0, aux;
    if (level==n){
        for (short i=0;i<n;i++)
            fout<<sol[i]<<' ';
        fout<<'\n';
        return;
    }
    while (nxt[st]!=0){
        aux=nxt[st];
        nxt[st]=nxt[nxt[st]];
        sol[level]=ind[aux];
        perm(level+1);
        nxt[st]=aux;
        st=aux;
    }
}
int main()
{
    fin>>n;
    for (i=1;i<=n;i++){
        ind[i]=i;
        nxt[i-1]=i;
    }
    perm(0);
    return 0;
}